verwaest@chromium.org
|
41c63d8899
|
Only infer int32 in HBoundsCheck if input is double or int32.
R=jkummerow@chromium.org, mmassi@chromium.org
Review URL: https://chromiumcodereview.appspot.com/17057004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15156 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
|
2013-06-14 14:14:07 +00:00 |
|
verwaest@chromium.org
|
84759d7e6e
|
Cleanup RepresentationFromUseRequirements, move it to HValue and use it where relevant
BUG=
R=jkummerow@chromium.org
Review URL: https://chromiumcodereview.appspot.com/17005004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15155 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
|
2013-06-14 14:13:48 +00:00 |
|
jkummerow@chromium.org
|
9447014780
|
Skip some conditional deopts for Div/Mul when all uses are truncating.
- set "can be minus zero" flag properly so minus-zero checks are skipped
- skip "integer result?" check in division code when uses are truncating
- drive-by cleanup: consolidated computation of kCanOverflow flag for Add/Sub into range inference phase
BUG=v8:2132
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/16741002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15060 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
|
2013-06-11 11:43:57 +00:00 |
|
jkummerow@chromium.org
|
57632e208a
|
Increase sanity of integer division handling on ARM
- In the INT32 BinaryOpStub, fix type feedback collection for DIV,
bringing it in line with other platforms.
- In Lithium codegen, emit proper inlined code, don't call the stub.
- Drive-by fix: assert appropriate CpuFeaturesScope for SDIV.
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/16082008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15057 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
|
2013-06-11 10:47:44 +00:00 |
|
verwaest@chromium.org
|
8afeaabe57
|
Allow boundscheck elimination to work on Smi keys.
R=jkummerow@chromium.org
Review URL: https://chromiumcodereview.appspot.com/16035016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15001 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
|
2013-06-07 11:00:39 +00:00 |
|
verwaest@chromium.org
|
a3dccd15b0
|
Don't ignore the actual input representation in UnaryMathOperations
R=jkummerow@chromium.org
Review URL: https://chromiumcodereview.appspot.com/16035014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14997 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
|
2013-06-07 09:11:33 +00:00 |
|
verwaest@chromium.org
|
cb3645fee9
|
Infer the range of Math.abs
R=jkummerow@chromium.org, svenpanne@chromium.org
Review URL: https://chromiumcodereview.appspot.com/16268009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14996 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
|
2013-06-07 09:07:53 +00:00 |
|
verwaest@chromium.org
|
8bd4199fdd
|
Don't force representations in the loop builder.
Additionally, infer None-typed CompareIDAndBranch to Smi+actual input.
R=jkummerow@chromium.org
Review URL: https://chromiumcodereview.appspot.com/16365004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14960 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
|
2013-06-05 17:24:14 +00:00 |
|
verwaest@chromium.org
|
95cd146359
|
Fix win build
BUG=
R=hpayer@chromium.org
Review URL: https://chromiumcodereview.appspot.com/15934019
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14939 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
|
2013-06-04 17:15:32 +00:00 |
|
jkummerow@chromium.org
|
20cedf9a4b
|
Liveness analysis for environment slots in Hydrogen
R=titzer@chromium.org
Review URL: https://codereview.chromium.org/15533004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14938 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
|
2013-06-04 16:41:24 +00:00 |
|
verwaest@chromium.org
|
00addf5adc
|
Replace log2 with MostSignificantBit
R=ulan@chromium.org
Review URL: https://chromiumcodereview.appspot.com/15994015
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14937 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
|
2013-06-04 15:39:56 +00:00 |
|
verwaest@chromium.org
|
277ec5d7b2
|
Infer the range of XOR as limited by the highest possible changed bit.
R=ulan@chromium.org
Review URL: https://chromiumcodereview.appspot.com/16361003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14933 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
|
2013-06-04 12:26:39 +00:00 |
|
mstarzinger@chromium.org
|
f8db2414f2
|
Deprecate FACTORY helper macro.
This removes the FACTORY helper macro to avoid accidental TLS access
when using the factory. Most internal code has access to the Isolate by
now whereas tests which are not performance critical still heavily use
TLS access through explicit Isolate::Current() calls.
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/16337005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14931 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
|
2013-06-04 10:30:05 +00:00 |
|
mstarzinger@chromium.org
|
d7975dfdab
|
Deprecate HAllocateObject in favor of HAllocate.
This models the instantiation of an implicit receiver for CallNew nodes
in hydrogen using HAllocate together with generic stores instead of one
specialized HAllocateObject instruction, hence creating a single choking
point for inlined allocation in optimized code.
R=hpayer@chromium.org
Review URL: https://codereview.chromium.org/15714005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14930 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
|
2013-06-04 08:28:33 +00:00 |
|
svenpanne@chromium.org
|
b9e025a8dc
|
Collect type feedback for power-of-2 right operands in BinaryOps.
Improved --trace-ic output for unary/binary ops a bit on the way. Moved int32_t/uint32_t conversion helpers around.
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/15735005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14928 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
|
2013-06-04 07:49:45 +00:00 |
|
verwaest@chromium.org
|
179ac2cd0c
|
Improve smi support in crankshaft
- Recover smi in phis if inputs are smi-typed
- Don't record smi-typed values as pointers
BUG=
R=jkummerow@chromium.org
Review URL: https://chromiumcodereview.appspot.com/16240003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14926 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
|
2013-06-03 16:57:36 +00:00 |
|
verwaest@chromium.org
|
1a4a904bef
|
Replace DeoptimizeOnUndefined with whitelisting AllowUndefinedAsNan
R=danno@chromium.org
Review URL: https://chromiumcodereview.appspot.com/15952007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14894 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
|
2013-05-30 09:11:06 +00:00 |
|
svenpanne@chromium.org
|
7bfe1436d3
|
Improve range analysis for modulo operations.
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/15952004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14884 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
|
2013-05-29 12:42:04 +00:00 |
|
verwaest@chromium.org
|
7d32e7451f
|
Don't explicitly pass requested representations to constants; implement ConstantS
R=jkummerow@chromium.org
Review URL: https://chromiumcodereview.appspot.com/15932011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14874 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
|
2013-05-29 10:47:55 +00:00 |
|
verwaest@chromium.org
|
8276673a73
|
Only allow non-double if the observed representations are int32.
R=mvstanton@chromium.org
Review URL: https://chromiumcodereview.appspot.com/15988005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14852 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
|
2013-05-28 13:28:59 +00:00 |
|
verwaest@chromium.org
|
cf9b1170d1
|
Support Smi in CompareIDAndBranch
BUG=
R=jkummerow@chromium.org
Review URL: https://chromiumcodereview.appspot.com/16134003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14842 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
|
2013-05-28 09:24:39 +00:00 |
|
verwaest@chromium.org
|
f98ee1a223
|
Tag smi-constants as smi.
R=jkummerow@chromium.org
Review URL: https://chromiumcodereview.appspot.com/16010004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14834 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
|
2013-05-28 08:00:42 +00:00 |
|
verwaest@chromium.org
|
aa2444269b
|
Fix the hole loading optimization.
- Holes are only ever loaded as double or tagged.
- Change to tagged has to deoptimize on undefined (no implicit
conversions from double the hole NaN -> tagged undefined).
BUG=
R=jkummerow@chromium.org
Review URL: https://chromiumcodereview.appspot.com/16099006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14829 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
|
2013-05-27 17:33:14 +00:00 |
|
verwaest@chromium.org
|
a64b7f926f
|
Remove HCheckSmi, LCheckSmi and rename LCheckSmiAndReturn to LCheckSmi.
R=jkummerow@chromium.org
Review URL: https://chromiumcodereview.appspot.com/15841007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14816 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
|
2013-05-27 09:58:46 +00:00 |
|
verwaest@chromium.org
|
3cb8f95c91
|
Tag smi-constants as smi. This also fixes code that copies holes into arrays.
BUG=
R=jkummerow@chromium.org
Review URL: https://chromiumcodereview.appspot.com/15861009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14814 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
|
2013-05-27 08:43:58 +00:00 |
|
verwaest@chromium.org
|
2a28f53b18
|
Fix hole handling, and ensure smi representation is handled properly
R=jkummerow@chromium.org
Review URL: https://chromiumcodereview.appspot.com/16013003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14807 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
|
2013-05-24 13:40:02 +00:00 |
|
verwaest@chromium.org
|
c417df74f4
|
Update representation-from-uses to support smi.
R=jkummerow@chromium.org
Review URL: https://chromiumcodereview.appspot.com/15692004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14801 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
|
2013-05-24 12:29:37 +00:00 |
|
verwaest@chromium.org
|
c9a22a3c8d
|
Replace tagged keys for fast access by smi, and use smi in boundscheck.
BUG=
R=jkummerow@chromium.org
Review URL: https://chromiumcodereview.appspot.com/15763004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14794 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
|
2013-05-24 08:52:35 +00:00 |
|
titzer@chromium.org
|
94b4240f5c
|
Introduce ObjectAccess, which is used by LoadNamedField and StoreNamedField to denote what parts of an object are referred to by a given load or store. Refactor HGraphBuilder to use ObjectAccess, which removes the need to manually set GVN flags and simplifies the code as well.
Review URL: https://codereview.chromium.org/14284010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14791 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
|
2013-05-24 08:38:21 +00:00 |
|
jkummerow@chromium.org
|
f691f48c14
|
Avoid creating duplicate entries for a value when merging HSimulates
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/15660003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14766 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
|
2013-05-23 09:17:01 +00:00 |
|
verwaest@chromium.org
|
308e69755b
|
Implement HChange support for Smis and use it in Load/StoreNameField
BUG=
R=verwaest@chromium.org
Review URL: https://chromiumcodereview.appspot.com/15303004
Patch from Daniel Clifford <danno@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14765 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
|
2013-05-23 08:32:07 +00:00 |
|
titzer@chromium.org
|
5746d38351
|
Fix code gen bug on arm and mips; SeqStringSetChar overwrites a register; Add better default PrintDataTo for HInstruction
BUG=
Review URL: https://codereview.chromium.org/14895019
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14710 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
|
2013-05-16 14:27:39 +00:00 |
|
titzer@chromium.org
|
68eb1e50ca
|
Improve dead code elimination by transitively marking live code and removing all dead code. Replace unreachable phi removal algorithm with the new dead code elimination pass, which is more thorough.
Review URL: https://codereview.chromium.org/14676011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14661 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
|
2013-05-14 13:10:52 +00:00 |
|
danno@chromium.org
|
6862babfd6
|
Remove HIsNilAndBranch (it's now unused)
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/14971005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14660 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
|
2013-05-14 12:56:53 +00:00 |
|
svenpanne@chromium.org
|
c1bc396c2d
|
Consistently assume that arithmetic operations can overflow unless one can prove the opposite.
Previously, HDiv never had its CanOverflow flag cleared and HMod had
inverted logic (compared to HAdd, HSub and HMul). Minor cleanups on the way.
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/14617015
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14644 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
|
2013-05-13 13:48:15 +00:00 |
|
svenpanne@chromium.org
|
4525879eb0
|
Print range and type for phis, too.
To comply with c1visualizer syntax, the format for ranges and types has changed
slightly. Furthermore, the format for phi uses has been changed a bit for more
consistency, too.
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/14882006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14637 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
|
2013-05-13 11:51:49 +00:00 |
|
danno@chromium.org
|
05e8e0e7b4
|
Elide hole checks on KeyedLoads of holey double arrays
Improves NavierStokes by about 5%
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/15014020
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14630 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
|
2013-05-13 07:35:26 +00:00 |
|
svenpanne@chromium.org
|
f853b08ad0
|
Fixed constant folding in HMod.
We have to check for overflow before attempting to do a modulo operation,
otherwise Crankshaft itself segfaults on some platforms, e.g. ia32. Added tests
even for division, where the problem doesn't show up, just to be sure...
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/14617014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14629 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
|
2013-05-13 07:32:38 +00:00 |
|
verwaest@chromium.org
|
d24d961638
|
Clear new-space promotion if the type is smi.
R=mvstanton@chromium.org
Review URL: https://chromiumcodereview.appspot.com/15098002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14616 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
|
2013-05-10 12:19:34 +00:00 |
|
mstarzinger@chromium.org
|
8829a94c24
|
Remove obsolete HArrayLiteral instruction.
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/14847013
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14613 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
|
2013-05-10 09:52:08 +00:00 |
|
mstarzinger@chromium.org
|
efe91b56f6
|
Remove obsolete HObjectLiteral instruction.
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/14972008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14612 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
|
2013-05-10 09:47:05 +00:00 |
|
verwaest@chromium.org
|
52008429b7
|
Use mutable heapnumbers to store doubles in fields.
R=danno@chromium.org
Review URL: https://chromiumcodereview.appspot.com/14850006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14597 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
|
2013-05-08 15:02:08 +00:00 |
|
titzer@chromium.org
|
dbcd0e925a
|
Remove HLoadElements instruction and replace with use of more general HLoadNamedField. This removes the need for both the hydrogen and lithium instructions and allows both kinds of loads to be GVN'd.
Review URL: https://codereview.chromium.org/14556020
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14542 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
|
2013-05-03 12:21:16 +00:00 |
|
jkummerow@chromium.org
|
0ac47f23d8
|
Remove 'unanimous use observations' rule from Phi representation inference
Review URL: https://codereview.chromium.org/14840014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14536 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
|
2013-05-03 08:50:48 +00:00 |
|
jkummerow@chromium.org
|
f78f583110
|
Detect truncating Phi uses of Phis with constant inputs
Review URL: https://codereview.chromium.org/14260013
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14525 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
|
2013-05-02 16:30:58 +00:00 |
|
mstarzinger@chromium.org
|
04fdcad547
|
Fix HConstant::InNewSpace() for parallel compilation.
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/13977019
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14488 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
|
2013-04-30 08:00:43 +00:00 |
|
verwaest@chromium.org
|
99e17bb12a
|
Track storage types of instance variables.
Review URL: https://chromiumcodereview.appspot.com/14146005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14464 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
|
2013-04-26 15:30:41 +00:00 |
|
jkummerow@chromium.org
|
f80d86cbb1
|
Better handling of Phi nodes with constant inputs
Review URL: https://codereview.chromium.org/14471034
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14448 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
|
2013-04-26 08:47:02 +00:00 |
|
jkummerow@chromium.org
|
628875475e
|
Fix overflow check in mul-i which was missing since r14322
Review URL: https://codereview.chromium.org/14471012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14430 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
|
2013-04-25 07:36:59 +00:00 |
|
svenpanne@chromium.org
|
bc06a802a7
|
Fixed HUnaryMathOperation regarding its possible operations.
Review URL: https://codereview.chromium.org/14333013
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14422 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
|
2013-04-24 14:51:14 +00:00 |
|