- 14 Apr, 2015 3 commits
-
-
bmeurer authored
It's cheaper to materialize heap constants by loading from the roots array instead of embedding the constant into the instruction stream, at least on x64, arm and arm64. Drive-by-fix: Also cleanup the materialize constant from frame optimization. R=dcarney@chromium.org Review URL: https://codereview.chromium.org/1088913002 Cr-Commit-Position: refs/heads/master@{#27818}
-
dcarney authored
R=bmeurer@chromium.org Review URL: https://codereview.chromium.org/1060373006 Cr-Commit-Position: refs/heads/master@{#27808}
-
dcarney authored
BUG=427616 LOG=N Review URL: https://codereview.chromium.org/1087533002 Cr-Commit-Position: refs/heads/master@{#27805}
-
- 13 Apr, 2015 5 commits
-
-
adamk authored
This avoids both a mysterious boolean argument ("insert") and lets non-mutating lookups skip passing an allocator (in one such case, we were passing a scary-looking ZoneAllocationPolicy(NULL)!). Review URL: https://codereview.chromium.org/1074943002 Cr-Commit-Position: refs/heads/master@{#27799}
-
titzer authored
R=mstarzinger@chromium.org,verwaest@chromium.org BUG= Review URL: https://codereview.chromium.org/1077343002 Cr-Commit-Position: refs/heads/master@{#27792}
-
dcarney authored
BUG= Review URL: https://codereview.chromium.org/1085623002 Cr-Commit-Position: refs/heads/master@{#27787}
-
dcarney authored
rename to ReferenceMap use ZoneVector for storage drop dead code BUG= Review URL: https://codereview.chromium.org/1081053002 Cr-Commit-Position: refs/heads/master@{#27785}
-
bmeurer authored
This tweak was already present in CrankShaft for the non-AVX case. As it turns out, it's also relevant even with AVX. Now the same optimization is applied in case of TurboFan as well. R=dcarney@chromium.org Review URL: https://codereview.chromium.org/1081033003 Cr-Commit-Position: refs/heads/master@{#27774}
-
- 11 Apr, 2015 1 commit
-
-
Weiliang Lin authored
R=bmeurer@chromium.org Review URL: https://codereview.chromium.org/1072343002 Cr-Commit-Position: refs/heads/master@{#27768}
-
- 10 Apr, 2015 4 commits
-
-
michael_dawson authored
Port 725cdc53 Original commit message: This reduces the overhead of recursive calls when context specialization is enabled. Based on this it might be possible to further reduce the overhead by also specializing the call itself. As a drive-by-fix, port the fast context materialization optimization to arm and arm64, that was previously only supported on x64 and ia32. R=mbrandy@us.ibm.com BUG= Review URL: https://codereview.chromium.org/1078183002 Cr-Commit-Position: refs/heads/master@{#27762}
-
bmeurer authored
R=dcarney@chromium.org Review URL: https://codereview.chromium.org/1071333004 Cr-Commit-Position: refs/heads/master@{#27741}
-
bmeurer authored
Currently we always generate a diamond in the graph builder for every legacy const context slot, which we cannot get rid of until late control reduction, even if we know after context specialization that the slot is already initialized. Now we generate a select instead, which the CommonOperatorReducer happily removes during typed lowering. This greatly speeds up asm.js code generated by Emscripten with the new POINTER_MASKING mode. R=mstarzinger@chromium.org Review URL: https://codereview.chromium.org/1072353002 Cr-Commit-Position: refs/heads/master@{#27739}
-
bmeurer authored
Ideally we would not need the StoreWriteBarrier instructions at all, but represent the RecordWrite functionality as machine subgraph, but that'll take some time to get there. In the mean time we can have a shorter instruction sequence on Intel platforms by recognizing immediate indices here. R=svenpanne@chromium.org Review URL: https://codereview.chromium.org/1075103002 Cr-Commit-Position: refs/heads/master@{#27731}
-
- 09 Apr, 2015 11 commits
-
-
michael_dawson authored
Port 9af9f1d0 Original commit message: These operators compute the absolute floating point value of some arbitrary input, and are implemented without any branches (i.e. using vabs on arm, and andps/andpd on x86). R=mbrandy@us.ibm.com BUG= Review URL: https://codereview.chromium.org/1072963002 Cr-Commit-Position: refs/heads/master@{#27727}
-
michael_dawson authored
Optimiation similar to what is done for x86 R=mbrandy@us.ibm.com BUG= Review URL: https://codereview.chromium.org/1072173002 Cr-Commit-Position: refs/heads/master@{#27718}
-
caitpotter88 authored
BUG=v8:3018 R= LOG=N Review URL: https://codereview.chromium.org/938443002 Cr-Commit-Position: refs/heads/master@{#27714}
-
dcarney authored
R=titzer@chromium.org BUG= Review URL: https://codereview.chromium.org/1075903002 Cr-Commit-Position: refs/heads/master@{#27709}
-
titzer authored
R=machenbach@chromium.org BUG= Review URL: https://codereview.chromium.org/1077613002 Cr-Commit-Position: refs/heads/master@{#27702}
-
dcarney authored
Review URL: https://codereview.chromium.org/1070043002 Cr-Commit-Position: refs/heads/master@{#27701}
-
balazs.kilvady authored
Port 725cdc53 Original commit message: This reduces the overhead of recursive calls when context specialization is enabled. Based on this it might be possible to further reduce the overhead by also specializing the call itself. As a drive-by-fix, port the fast context materialization optimization to arm and arm64, that was previously only supported on x64 and ia32. BUG= Review URL: https://codereview.chromium.org/1074743002 Cr-Commit-Position: refs/heads/master@{#27700}
-
dcarney authored
This is preparatory work to have MachineTypes encoded in AllocatedOperands. Review URL: https://codereview.chromium.org/1075863002 Cr-Commit-Position: refs/heads/master@{#27698}
-
Benedikt Meurer authored
This is a very simple dead store elimination that removes StoreField nodes which are immediately followed by other StoreField nodes that store to the same field. Ideally there should be a fully featured store elimination, which walks over the effect graph starting from the end, but there are some technical difficulties to solve before we can get to that, esp. we need to think about "effect producing" operators like ValueEffect first. Once we have that, it is trivial to remove this temporary poor man's store elimination. R=dcarney@chromium.org Review URL: https://codereview.chromium.org/1070003002 Cr-Commit-Position: refs/heads/master@{#27697}
-
dcarney authored
- ConstantOperand was using a too-small field too store its virtual register - drop ConvertTo, replace it with simple copy - split AllocatedOperand off from Immediate and Constant to make assignment clearer, also paving the way for small Immediates - put zone first in *Operand::New - driveby: drop delayed ssa deconstruction experiment R=titzer@chromium.org BUG= Review URL: https://codereview.chromium.org/1050803002 Cr-Commit-Position: refs/heads/master@{#27692}
-
bmeurer authored
This reduces the overhead of recursive calls when context specialization is enabled. Based on this it might be possible to further reduce the overhead by also specializing the call itself. As a drive-by-fix, port the fast context materialization optimization to arm and arm64, that was previously only supported on x64 and ia32. R=svenpanne@chromium.org Review URL: https://codereview.chromium.org/1072743002 Cr-Commit-Position: refs/heads/master@{#27686}
-
- 08 Apr, 2015 7 commits
-
-
balazs.kilvady authored
Port 9af9f1d0 Original commit message: These operators compute the absolute floating point value of some arbitrary input, and are implemented without any branches (i.e. using vabs on arm, and andps/andpd on x86). BUG= Review URL: https://codereview.chromium.org/1073463003 Cr-Commit-Position: refs/heads/master@{#27679}
-
svenpanne authored
Although all this code might be moved around later, it's a good idea to unhackify it now. :-) Review URL: https://codereview.chromium.org/1067193004 Cr-Commit-Position: refs/heads/master@{#27672}
-
titzer authored
R=mstarzinger@chromium.org BUG= Review URL: https://codereview.chromium.org/1038953002 Cr-Commit-Position: refs/heads/master@{#27669}
-
mstarzinger authored
This allows loopy TurboFan code to be interrupted by placing a stack check (i.e. JSStackCheck node) into each loop. Note that we currently limit this to non-asm.js code. Also note that stack checks are actually placed after loop headers and not at back-branches, which allows us to reuse existing BailoutIds from Crankshaft. R=titzer@chromium.org Review URL: https://codereview.chromium.org/1065923002 Cr-Commit-Position: refs/heads/master@{#27666}
-
Benedikt Meurer authored
These operators compute the absolute floating point value of some arbitrary input, and are implemented without any branches (i.e. using vabs on arm, and andps/andpd on x86). R=svenpanne@chromium.org Review URL: https://codereview.chromium.org/1066393002 Cr-Commit-Position: refs/heads/master@{#27662}
-
titzer authored
R=bmeurer@chromium.org BUG= Review URL: https://codereview.chromium.org/1061303002 Cr-Commit-Position: refs/heads/master@{#27658}
-
bmeurer authored
Performance measurements show that the position independent code is usually slightly faster than the position dependent code, and there seems to be no noticable regression. This also gets rid of a lot of support code that was only required to allow embedding labels into the code stream. And it implies that neither the GC nor the deserializer need to do anything for jump tables. R=svenpanne@chromium.org BUG=v8:3872 LOG=n Review URL: https://codereview.chromium.org/1069633002 Cr-Commit-Position: refs/heads/master@{#27646}
-
- 07 Apr, 2015 7 commits
-
-
mstarzinger authored
This enables eager optimization of top-level code with TurboFan and extends test coverage by triggering it with the --always-opt flag. Script contexts are now also properly allocated in TurboFan. R=titzer@chromium.org Review URL: https://codereview.chromium.org/1053063003 Cr-Commit-Position: refs/heads/master@{#27633}
-
martyn.capewell authored
Support sxtb and sxth extend operators on add and subtract, as we've done for ubtx/h. This is similar to ARM support for sxtab/h. BUG= Review URL: https://codereview.chromium.org/1064813003 Cr-Commit-Position: refs/heads/master@{#27624}
-
titzer authored
This CL primarily makes the loop peeling algorithm more robust; it no longer damages the graph if the loops are improperly closed. R=bmeurer@chromium.org BUG= Review URL: https://codereview.chromium.org/1052753004 Cr-Commit-Position: refs/heads/master@{#27620}
-
bmeurer authored
We can use xorps/xorpd on Intel CPUs to flip the sign bit. Ideally we'd use an absolute 128-bit constant in the code object, as OCaml/GCC does, however that requires 128-bit alignment for code objects, which is not yet implemented. So for now we materialize the mask inline. As drive-by-fix, don't hardcode xmm0 as scratch double register. R=svenpanne@chromium.org Review URL: https://codereview.chromium.org/1064833002 Cr-Commit-Position: refs/heads/master@{#27618}
-
titzer authored
R=bmeurer@chromium.org BUG= Review URL: https://codereview.chromium.org/1054963002 Cr-Commit-Position: refs/heads/master@{#27613}
-
baptiste.afsa authored
R=bmeurer@chromium.org Review URL: https://codereview.chromium.org/1056543002 Cr-Commit-Position: refs/heads/master@{#27612}
-
bmeurer authored
We can use xorps/xorpd on Intel CPUs to flip the sign bit. Ideally we'd use a RIP-relative 128-bit constant in the code object, as OCaml/GCC does, however that requires 128-bit alignment for code objects, which is not yet implemented. So for now we materialize the mask inline. R=dcarney@chromium.org Review URL: https://codereview.chromium.org/1046893002 Cr-Commit-Position: refs/heads/master@{#27611}
-
- 02 Apr, 2015 2 commits
-
-
titzer authored
R=mstarzinger@chromium.org BUG= Review URL: https://codereview.chromium.org/1057843002 Cr-Commit-Position: refs/heads/master@{#27591}
-
mstarzinger authored
This keeps the length of the context chain tracked by the environment in sync even for local control flow commands. It removes the need to guess the correct chain length at Environment::Merge points. R=titzer@chromium.org Review URL: https://codereview.chromium.org/1045703003 Cr-Commit-Position: refs/heads/master@{#27588}
-