- 29 Aug, 2014 3 commits
-
-
sigurds@chromium.org authored
- Scheduler can inline a function with a loop. - Inlining strict into non-strict works correctly. - Inlining non-strict into strict works correctly. R=mstarzinger@chromium.org Review URL: https://codereview.chromium.org/515103002 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23511 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
bmeurer@chromium.org authored
TBR=mstarzinger@chromium.org Review URL: https://codereview.chromium.org/524533002 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23508 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
bmeurer@chromium.org authored
Note: The test failure was unrelated to the fact that it run on actual ARM hardware, but it was failing because the test relied on undefined and implementation defined behaviour of the C++ compiler. TBR=mstarzinger@chromium.org TEST=cctest Review URL: https://codereview.chromium.org/517943002 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23507 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 28 Aug, 2014 8 commits
-
-
mstarzinger@chromium.org authored
R=titzer@chromium.org TEST=cctest/test-simplified-lowering Review URL: https://codereview.chromium.org/516943002 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23501 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
mstarzinger@chromium.org authored
R=vogelheim@chromium.org TEST=cctest/test-run-properties/TypedArrayLoad Review URL: https://codereview.chromium.org/517673002 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23498 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
mstarzinger@chromium.org authored
R=titzer@chromium.org TEST=cctest/test-run-properties/TypedArrayLoad Review URL: https://codereview.chromium.org/516853002 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23492 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
titzer@chromium.org authored
Use TruncateFloat64ToInt32 instead of ChangeFloat64ToInt32 in lowering of simplified operators NumberToInt32/NumberToUint32. R=mstarzinger@chromium.org BUG= Review URL: https://codereview.chromium.org/509653003 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23491 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
titzer@chromium.org authored
Add MachineSignature, which is an encapsulation of the machine types for parameters and return values in a graph. This utility will be used to simplify Linkage and fix representation inference to work with graphs where parameters and return values are something other than tagged. It will also make testing representation inference a lot easier, since we can then exactly nail down the machine types of parameters and returns. This CL also adds c-signature.h, which demonstrates how to convert C function signatures into MachineSignatures. The CSignatures will be used in tests to make it easier and simpler to codegen tests. R=jarin@chromium.org BUG= Review URL: https://codereview.chromium.org/515173002 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23490 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
sigurds@chromium.org authored
* Only control adjustment is to move everything from the inlinee's start block to the block the call was in. * Add a unit test to ensure that the scheduler actually picks the right order when placing the code. R=mstarzinger@chromium.org, titzer@chromium.org Review URL: https://codereview.chromium.org/508953002 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23489 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
sigurds@chromium.org authored
GCC needs definitions for constant members (clang doesn't). TBR=mstarzinger@chromium.org Review URL: https://codereview.chromium.org/511133002 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23480 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
sigurds@chromium.org authored
Remove dependency from generic lowering on compilation info for determining strictness and builtins. This makes the graphs compositional for inlining (i.e. we can now inline a strict function into a non-strict function, or vice versa). 1) Store strict mode as parameter in StoreNamed/StoreProperty. R=mstarzinger@chromium.org, titzer@chromium.org Review URL: https://codereview.chromium.org/473263004 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23479 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 27 Aug, 2014 4 commits
-
-
titzer@chromium.org authored
TBR=vogelheim@chromium.org BUG= Review URL: https://codereview.chromium.org/515583002 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23468 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
jarin@chromium.org authored
BUG= R=bmeurer@chromium.org Review URL: https://codereview.chromium.org/505133002 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23467 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
titzer@chromium.org authored
Disable some changes tests on ARM64. Also, fix the changes lowering to not use the more expensive TruncateFloat64ToInt32, but to use ChangeFloat64ToInt32/ChangeFloat64ToUint32, as it was before. R=mstarzinger@chromium.org BUG= Review URL: https://codereview.chromium.org/512753002 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23460 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
titzer@chromium.org authored
R=bmeurer@chromium.org BUG= Review URL: https://codereview.chromium.org/515433003 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23449 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 26 Aug, 2014 4 commits
-
-
titzer@chromium.org authored
This CL makes several changes to the scheduling algorithm to handle control flow that is not connected to End. Such control nodes constitute "floating control islands" that must be linearized by the schedule. This is done by considering such nodes to be schedulable, and then editing the control dependencies after a first pass of scheduling. Then a subsequent pass of scheduling will place all nodes correctly into the fully connected graph. R=mstarzinger@chromium.org, rossberg@chromium.org BUG= Review URL: https://codereview.chromium.org/499363002 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23411 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
mstarzinger@chromium.org authored
R=titzer@chromium.org Review URL: https://codereview.chromium.org/507603003 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23410 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
bmeurer@chromium.org authored
Our own ARRAY_SIZE() was pretty bad at error checking. If you use arrasize() in a wrong way, the compiler will issue an error instead of silently doing the wrong thing. The previous ARRAY_SIZE() macro is still available as ARRAYSIZE_UNSAFE() similar to Chrome. R=yangguo@chromium.org Review URL: https://codereview.chromium.org/501323002 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23389 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
bmeurer@chromium.org authored
This is the bare minimum required to support typed arrays. Support for working with float32 values will be added based on this. TEST=compiler-unittests,cctest R=svenpanne@chromium.org Review URL: https://codereview.chromium.org/500343002 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23386 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 25 Aug, 2014 5 commits
-
-
mstarzinger@chromium.org authored
R=titzer@chromium.org TEST=cctest/test-run-jsbranches/ForInContinueStatement BUG=v8:3522 LOG=N Review URL: https://codereview.chromium.org/502043002 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23369 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
mstarzinger@chromium.org authored
TBR=vogelheim@chromium.org TEST=cctest/test-run-inlining Review URL: https://codereview.chromium.org/505753002 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23356 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
bmeurer@chromium.org authored
Also rename the arch opcodes to match their native counterparts. TEST=compiler-unittests,cctest R=jarin@chromium.org Review URL: https://codereview.chromium.org/505713002 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23345 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
jarin@chromium.org authored
Since the deopt patch address needs to be available during GC to resolve safepoints, we need to move it to the code object (instead of the deoptimization input data) - accessing a separate fixed array is not safe during GC. This CL adds a deoptimization_pc field to each safepoint. The fields points to the deoptimization block. The CL also fixes wrong register allocator constraints for frame states on calls. These should always live on the stack because registers are not preserved during a call. BUG= R=bmeurer@chromium.org Review URL: https://codereview.chromium.org/504493002 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23334 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
yangguo@chromium.org authored
R=bmeurer@chromium.org, jarin@chromium.org Review URL: https://codereview.chromium.org/488363003 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23331 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 21 Aug, 2014 1 commit
-
-
sigurds@chromium.org authored
Reland fixes: Don't set string flags (doing so leaks memory). Load closure from activation for building literals. R=titzer@chromium.org Review URL: https://codereview.chromium.org/484273003 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23275 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 20 Aug, 2014 2 commits
-
-
sigurds@chromium.org authored
Reland Fixes: * Remove usage of C++11 vector members. * Guard tests by V8_TURBO_TARGET. Changes: * Make context specialization clean up after itself. * Add UpdateToAndIncrement to Inputs::iterator. Uses:iterator already provides this member function. * Allow next node id in graph to be set. R=titzer@chromium.org, mstarzinger@chromium.org Review URL: https://codereview.chromium.org/484083003 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23231 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
bmeurer@chromium.org authored
Fix ChangeLowering to use TruncateFloat64ToInt32. TEST=cctest,compiler-unittests R=jarin@chromium.org Review URL: https://codereview.chromium.org/484103002 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23214 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 19 Aug, 2014 6 commits
-
-
sigurds@chromium.org authored
This reverts commit r23205. Setting string-type flags in unit tests is not a good idea. TBR=titzer@chromium.org Review URL: https://codereview.chromium.org/489543002 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23208 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
sigurds@chromium.org authored
BUG= R=titzer@chromium.org Review URL: https://codereview.chromium.org/474633003 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23205 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
sigurds@chromium.org authored
This reverts commit r23197. TBR=titzer@chromium.org Review URL: https://codereview.chromium.org/481413002 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23198 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
sigurds@chromium.org authored
* Add stack depth checking to function tester. * Make context specialization clean up after itself. * Add UpdateToAndIncrement to Inputs::iterator. Uses:iterator already provides this member function. * Allow next node id in graph to be set. R=mstarzinger@chromium.org, titzer@chromium.org Review URL: https://codereview.chromium.org/453833003 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23197 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
sigurds@chromium.org authored
This is required to correctly treat eval in unit tests. BUG= R=mstarzinger@chromium.org Review URL: https://codereview.chromium.org/453953002 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23193 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
bmeurer@chromium.org authored
This affects arm64 and x64. Note that we do not yet optimize these conversions. Later we will add support for merging these conversion operators into other operations during instruction selection. TEST=cctest,compiler-unittests R=jarin@chromium.org Review URL: https://codereview.chromium.org/487723002 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23184 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 18 Aug, 2014 2 commits
-
-
titzer@chromium.org authored
R=jarin@chromium.org BUG= Review URL: https://codereview.chromium.org/484653002 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23161 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
bmeurer@chromium.org authored
For example, recognize 0 == r1 << r2 and generate a single MOVS rt, r1, lsl r2 instruction. TEST=cctest,compiler-unittests R=jarin@chromium.org Review URL: https://codereview.chromium.org/478233002 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23148 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 14 Aug, 2014 5 commits
-
-
mstarzinger@chromium.org authored
R=bmeurer@chromium.org Review URL: https://codereview.chromium.org/476733002 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23128 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
titzer@chromium.org authored
R=mstarzinger@chromium.org BUG= Review URL: https://codereview.chromium.org/461933002 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23125 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
titzer@chromium.org authored
MachineType now tracks both the representation and the value type of machine quantities and is used uniformly throughout TurboFan. These types can now express uint8, int8, uint16, and int16, i.e. signed and unsigned smallish integers. Note that currently only uint8 and uint16 are implemented in the TF backends. R=bmeurer@chromium.org, mstarzinger@chromium.org BUG= Review URL: https://codereview.chromium.org/470593002 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23122 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
bmeurer@chromium.org authored
Move recognition of rotate-right operations to the MachineOperatorReducer, so we don't need to repeat that in the InstructionSelector for every backend. TEST=base-unittests,compiler-unittests,cctests R=jarin@chromium.org Review URL: https://codereview.chromium.org/469213002 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23121 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
bmeurer@chromium.org authored
Also fix some issues and improve test coverage. TEST=compiler-unittests BUG=v8:3489 LOG=y R=jarin@chromium.org Review URL: https://codereview.chromium.org/469743002 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23111 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-