Commit Graph

54996 Commits

Author SHA1 Message Date
Steve Fink
0392f5cdb2 Bug 1259850 - Refactor findVirtualFunctions and improve comments, r=terrence
No more passing a 2nd return value back through a mutable 1-element array.

MozReview-Commit-ID: IUcyrq93KXT

--HG--
extra : rebase_source : 2f822b79ae81af55c0bdd372a8cf8e087bba2b7a
extra : source : c6615c7b00838e1d212c6007b4a54b20d71f7ae0
2016-03-25 15:25:56 -07:00
Steve Fink
1cde976b7c Bug 1259850 - Start searching from the most specialized csu, r=terrence
Previously, this mostly "worked" purely by chance -- it started gathering method definitions at the 'csu' variable, which JS helpfully hoisted up to the toplevel. It had the last value assigned to csu within the loop, which would have been the basest base class (don't think too hard about the case of multiple inheritance, it was wrong). Then we find all descendants, which was *too* much, but it ended up just making the analysis conservative.

MozReview-Commit-ID: 2Ps8gJpztw2

--HG--
extra : rebase_source : c12e58594e7d21dc035b2e669c53808629d5beae
extra : source : 196ac1f813f9a9489d24ba0c70c1dfb20b404489
2016-03-25 15:25:46 -07:00
Steve Fink
64a388b576 Bug 1259850 - Refactoring: more Set/Map usage, r=terrence
MozReview-Commit-ID: 2Ps8gJpztw2

--HG--
extra : rebase_source : 8cdfda64ecae7d68df700a8275744af4c06bcf94
extra : source : b6108a65dc38d298be19b74a30dc683bec69a3b3
2016-03-25 15:24:57 -07:00
Steve Fink
024c4b0d1a Bug 1259850 - Convert memoizer to Map, r=terrence
MozReview-Commit-ID: 2Ps8gJpztw2

--HG--
extra : rebase_source : 1ac0eeb48f468d05cb71eb88c9b75f1b31b7d5f2
extra : source : 0d58f8529b86a129f178788bd056d2a60cc73319
2016-03-25 15:18:57 -07:00
Steve Fink
6907840a2b Bug 1259850 - The explanations of why something is a hazard went up to just before the initial use of a variable. Extend them one further, r=terrence
MozReview-Commit-ID: 9l8ftRv3yjS

--HG--
extra : rebase_source : 98f0261e331518d92a8174513afad5be327a4407
extra : source : a8d2730ada95c70059ed6314f5eb3f7b28501f70
2016-03-25 15:12:31 -07:00
Steve Fink
13d4ab4e85 Bug 1259850 - Rename function, add a few comments, r=terrence
MozReview-Commit-ID: Fyk1zzbWGnh

--HG--
extra : rebase_source : 61c6900bac4bea0e2c645334d3984614f2ba4a2e
extra : source : e8544b072ee6b0055984ad7307216d61d4d3a26f
2015-09-29 13:39:38 -07:00
Steve Fink
bc7d8b91bd Bug 1259850 - Switch to using a Map for visited points within a function, and heavily comment, r=terrence
MozReview-Commit-ID: LvU4upaHt8b

--HG--
extra : rebase_source : 2f6d0a05594047dd505e1c63e0b52a94e1d3f5da
extra : source : 15de0d1d0b05457c18dcf70e4e81d9bfe5ad5f79
2015-09-29 13:39:38 -07:00
Boris Zbarsky
89b93668b8 Bug 1276112. Stop using GetScriptContextFromJSContext in CycleCollectedJSRuntime::UsefulToMergeZones. r=mccr8 2016-05-27 13:28:26 -04:00
Wes Kocher
74c78019e7 Backed out 22 changesets (bug 1259850) for GC crashes in various tests CLOSED TREE
Backed out changeset ef5cdcca45d9 (bug 1259850)
Backed out changeset c95bdd426ced (bug 1259850)
Backed out changeset a73f74f718e7 (bug 1259850)
Backed out changeset 95107c3ad9cf (bug 1259850)
Backed out changeset 788ac18818c9 (bug 1259850)
Backed out changeset 19c13aa9b5ad (bug 1259850)
Backed out changeset 0b9dedcf7163 (bug 1259850)
Backed out changeset b641d01138ab (bug 1259850)
Backed out changeset aa434447a11b (bug 1259850)
Backed out changeset 4c7373c6c29e (bug 1259850)
Backed out changeset 457cb29cad55 (bug 1259850)
Backed out changeset 5762a8fba027 (bug 1259850)
Backed out changeset 129559d4ac62 (bug 1259850)
Backed out changeset d00b9c8a7984 (bug 1259850)
Backed out changeset 266befcb8acd (bug 1259850)
Backed out changeset c6615c7b0083 (bug 1259850)
Backed out changeset 196ac1f813f9 (bug 1259850)
Backed out changeset b6108a65dc38 (bug 1259850)
Backed out changeset 0d58f8529b86 (bug 1259850)
Backed out changeset a8d2730ada95 (bug 1259850)
Backed out changeset e8544b072ee6 (bug 1259850)
Backed out changeset 15de0d1d0b05 (bug 1259850)
2016-05-31 11:15:41 -07:00
Steve Fink
ebb9f7599c Bug 1259850 warning fix on a CLOSED TREE
MozReview-Commit-ID: 8OsRyn3HD3j
2016-05-31 10:19:32 -07:00
Steve Fink
96d0fa6dcf Bug 1259850 - Make ZoneCellIter variants to communicate nogc to the hazard analysis, r=jonco
Also create accessors on gc::Zone for a nicer API to ZoneCellIters.

MozReview-Commit-ID: AxRTTUfWrND

--HG--
extra : rebase_source : cf32560db5a123bdc64178a7567ed36e1ecb5b2b
2016-05-27 22:00:10 -07:00
Steve Fink
69331f349a Bug 1259850 - Annotate mFree function pointer as not GCing, r=terrence
MozReview-Commit-ID: LrzzLYHsBnO

--HG--
extra : rebase_source : 4843a0d61884022398457ba788bb4f03d5bc8846
2016-05-27 16:48:31 -07:00
Steve Fink
4ec00ba75f Bug 1259850 - Comments
MozReview-Commit-ID: 9RjVxl4EX8N

--HG--
extra : rebase_source : 66b76123d3ef36ece9c911eb7815c70f15ed5ad6
2016-05-24 18:26:21 -07:00
Steve Fink
f651a379e8 Bug 1259850 - Test for sixgill exception handling + analysis constructor/destructor matching, r=terrence
MozReview-Commit-ID: H5NZlyS2rx5

--HG--
rename : js/src/devtools/rootAnalysis/t/suppression/source.cpp => js/src/devtools/rootAnalysis/t/exceptions/source.cpp
rename : js/src/devtools/rootAnalysis/t/suppression/test.py => js/src/devtools/rootAnalysis/t/exceptions/test.py
extra : rebase_source : c4f173bd51bf2a19b1805da5f71370c455ad12ca
2016-04-28 15:05:09 -07:00
Steve Fink
169685f973 Bug 1259850 - Remove unused test files, r=terrence
MozReview-Commit-ID: sBZct85zDJ

--HG--
extra : rebase_source : f03a5ac2ff9072c7c1e6610d1ec2bd84e81bdb54
2016-04-28 11:27:50 -07:00
Steve Fink
0c242cd715 Bug 1259850 - Fix constructor recognition, r=terrence
MozReview-Commit-ID: 46064amRbCQ

--HG--
extra : rebase_source : 18bd3043d699a55041388e54236620cdd5299202
2016-04-28 14:19:01 -07:00
Steve Fink
8e2cd9d734 Bug 1259850 - Update sixgill to ignore exception cleanup and properly qualify some type names
MozReview-Commit-ID: 7WSYmLAVb7M

--HG--
extra : rebase_source : adb56e3297546f013f669582aa452a5e16e758dd
2016-05-04 18:36:23 -07:00
Steve Fink
cfed81ff96 Bug 1259850 - Rewrite the test suite, add several tests, r=terrence
MozReview-Commit-ID: HtJ0uA3IfXZ

--HG--
rename : js/src/devtools/rootAnalysis/run-test.py => js/src/devtools/rootAnalysis/t/sixgill.py
extra : rebase_source : ae42485def39c26798bee72a2544034d1a557d3c
2016-03-25 14:40:23 -07:00
Steve Fink
44e27262d8 Bug 1259850 - Provide GC stacks for synthesized functions, r=terrence
MozReview-Commit-ID: 6WYqoXN3k9J

--HG--
extra : rebase_source : 31bdc58f9aff90bc7aecb076885e56f37885a320
2016-03-25 11:45:05 -07:00
Steve Fink
3cb5c6a3e8 Bug 1259850 - Handle D4 destructors, r=terrence
MozReview-Commit-ID: 1hArAcAxvZV

--HG--
extra : rebase_source : d9d65df85ac312bab022847843d4b75b25ecd55e
2016-03-25 11:44:21 -07:00
Steve Fink
c6f370b8e1 Bug 1259850 - Various refactorings, r=terrence
MozReview-Commit-ID: GYrqbzK3U8W

--HG--
extra : rebase_source : dfe6bfb523799becf7ab34c9dbbc365c46035bfc
2016-03-25 11:41:54 -07:00
Steve Fink
7ef77cb0e1 Bug 1259850 - In-source annotations for GC suppression, r=terrence
MozReview-Commit-ID: HaSt3RVV6CM

--HG--
extra : rebase_source : 9208edf58765abab960fa7188070704ee5bcbf56
2016-05-19 12:53:29 -07:00
Steve Fink
7e06b7d972 Bug 1259850 - Fix chunking implementation, r=terrence
MozReview-Commit-ID: F58OBZ4tCXw

--HG--
extra : rebase_source : 0e94d189b21cf6071d9d4c0b81d22fffb5a41db2
2016-03-25 10:56:32 -07:00
Steve Fink
044fdd2204 Bug 1259850 - Hide command output behind --verbose flag, r=terrence
MozReview-Commit-ID: ERQmFqLoyGw

--HG--
extra : rebase_source : 8e724d7eb6bc683c6600d330febbb035fe298d98
2016-03-25 11:07:04 -07:00
Steve Fink
8100e1379d Bug 1259850 - Refactor findVirtualFunctions and improve comments, r=terrence
No more passing a 2nd return value back through a mutable 1-element array.

MozReview-Commit-ID: IUcyrq93KXT

--HG--
extra : rebase_source : 8485a1816bd888aada033e10dff062ec32d4d4f1
2016-03-25 15:25:56 -07:00
Steve Fink
8afd1f9d6b Bug 1259850 - Start searching from the most specialized csu, r=terrence
Previously, this mostly "worked" purely by chance -- it started gathering method definitions at the 'csu' variable, which JS helpfully hoisted up to the toplevel. It had the last value assigned to csu within the loop, which would have been the basest base class (don't think too hard about the case of multiple inheritance, it was wrong). Then we find all descendants, which was *too* much, but it ended up just making the analysis conservative.

MozReview-Commit-ID: 2Ps8gJpztw2

--HG--
extra : rebase_source : b52ccf514e70fd00e5e73cdef59df379efb32487
2016-03-25 15:25:46 -07:00
Steve Fink
77be2fa2f9 Bug 1259850 - Refactoring: more Set/Map usage, r=terrence
MozReview-Commit-ID: 2Ps8gJpztw2

--HG--
extra : rebase_source : 358eb3bc7ef626177b744301659795c0f1d73d8b
2016-03-25 15:24:57 -07:00
Steve Fink
1b4f2c009a Bug 1259850 - Convert memoizer to Map, r=terrence
MozReview-Commit-ID: 2Ps8gJpztw2

--HG--
extra : rebase_source : 17832fcd628859f8fd62f6b254878633435cdfe9
2016-03-25 15:18:57 -07:00
Steve Fink
43e12cc6bc Bug 1259850 - The explanations of why something is a hazard went up to just before the initial use of a variable. Extend them one further, r=terrence
MozReview-Commit-ID: 9l8ftRv3yjS

--HG--
extra : rebase_source : a8cd8faeb91a66d2818c7212c435847996832796
2016-03-25 15:12:31 -07:00
Steve Fink
7d7a213b56 Bug 1259850 - Rename function, add a few comments, r=terrence
MozReview-Commit-ID: Fyk1zzbWGnh

--HG--
extra : rebase_source : ff201f130de9b05ac0d79ed08502e7a95b803961
2015-09-29 13:39:38 -07:00
Steve Fink
7b3b073eec Bug 1259850 - Switch to using a Map for visited points within a function, and heavily comment, r=terrence
MozReview-Commit-ID: LvU4upaHt8b

--HG--
extra : rebase_source : 552e4141e8d2cbba4846d98a055fea201077b735
2015-09-29 13:39:38 -07:00
Jakob Olesen
6a4e9a4585 Bug 1136226 - Enable inlining of 8x16 and 16x8 types. r=sunfish 2016-05-31 09:00:20 -07:00
Jakob Stoklund Olesen
61cdb6908f Bug 1136226 - Inline small int SIMD.js constructor calls. r=sunfish
Use the same strategy as we do for asm.js: Start from an initial vector and
insert one lane at a time.
2016-05-31 09:00:20 -07:00
Jakob Stoklund Olesen
8c8b287e98 Bug 1136226 - Make MIR New factories private where AddLegalized should be used. r=sunfish
Some MIR instructions have an AddLegalized() static function which much be used
when creating new instructions. This ensures that the proper expansions are
generated.

Make the New() factory method in those instructions private so it isn't used
inadvertently.

De-templatize the inlineSimdBinary<> function since it was only used for two
MIR instructions which are now created differently.
2016-05-31 09:00:20 -07:00
Jakob Stoklund Olesen
693ad15d32 Bug 1136226 - Asm.js: Test cases for small integer SIMD types. r=bbouvier
Tests for all of the new operations added by the previous commits.
2016-05-31 09:00:20 -07:00
Jakob Stoklund Olesen
dfd06d7505 Bug 1136226 - Asm.js: Enable small integer types. r=bbouvier 2016-05-31 09:00:20 -07:00
Jakob Stoklund Olesen
2810a22e4a Bug 1136226 - Test loads, stores, and bitcasts. r=sunfish
Add a new asm.js test later which exercises all the possible bitcast operations
as well as all possible load and store operations, except the partial ones.
This commit prepares for that test case.

Add new Scalar::I8x16, I16x8 enumerators.

Remove the fromUintXXX opcodes from the *_ASMJS macros. This avoids gerating
unwanted wasm opcodes. Include the relevant unsigned bit-casts explicitly where
needed.
2016-05-31 09:00:20 -07:00
Jakob Stoklund Olesen
e0fb4b123e Bug 1136226 - Inline saturating arithmetic operations. r=sunfish
Add support for inlining addSaturate and subSaturate SIMD operations when
compiling SIMD.js.
2016-05-31 09:00:20 -07:00
Jakob Stoklund Olesen
a917df3a54 Bug 1136226 - Implement compares for 8x16 and 16x8 SIMD types. r=sunfish
Since SSE doesn't have unsigned comparisons, add a bias vector and use the
signed comparisons instead, just like we do for the 32x4 unsigned vectors.

Use 'defineReuseInput' even when SIMD input and output types differ. This is
fine now since the register allocator uses a single Simd128 class for all SIMD
registers.
2016-05-31 09:00:19 -07:00
Jakob Stoklund Olesen
b2053f3529 Bug 1136226 - Add general shuffle support for 8x16 and 16x8 shuffles. r=bbouvier
This instruction is used when the shuffle indexes are not compile time
constants.

Give the register allocator permission to spill the index arguments to
GeneralShuffle instructions. There can be up to 16 of them, and they can't all
be registers.

Move visitSimdGeneralShuffle into the x86-specific lowering code since it has
special register allocation requirements for 8-bit lanes.
2016-05-31 09:00:19 -07:00
Jakob Stoklund Olesen
aa35551e53 Bug 1136226 - Implement shuffle for 8x16 and 16x8 SIMD types. r=sunfish
When SSSE3 is available, two pshufb instructions can be combined to form any
shuffle.

Old machines without SSSE3 bounce the two vectors through the stack.
2016-05-31 09:00:19 -07:00
Jakob Stoklund Olesen
0a4e75eeb5 Bug 1136226 - Implement swizzle for 8x16 and 16x8 SIMD types. r=sunfish
When we have SSSE3 available, the pshufb instruction can perform any byte-wise
swizzle.

Without SSSE3, fall back to using byte-wise loads and stores to simulate the
swizzle. This applies to CPUs from before 2006.
2016-05-31 09:00:19 -07:00
Jakob Stoklund Olesen
ef09df0405 Bug 1136226 - Implement select for 8x16 and 16x8 SIMD types. r=sunfish
Remove a normalizing shift of the boolean selector. Boolean SIMD types are
guaranteed to be represented as all-ones.
2016-05-31 09:00:19 -07:00
Jakob Stoklund Olesen
006c4cf148 Bug 1136226 - Handle SIMD global variables for x86 / x64. r=bbouvier 2016-05-31 09:00:19 -07:00
Jakob Stoklund Olesen
9b1061c296 Bug 1136226 - Implement Bool8x16.splat and Bool16x8.splat. r=bbouvier
The scalar argument to this operation is expanded into MIR as either -1 or 0 in
an Int32, so the 4-lane splat produces the correct result for 8-lane and
16-lane splats too. Either an all-zeroes vector or an all-ones vector.
2016-05-31 09:00:19 -07:00
Jakob Stoklund Olesen
f85827cd00 Bug 1136226 - Implement SIMD saturating arithmetic. r=bbouvier 2016-05-31 09:00:19 -07:00
Jakob Stoklund Olesen
ba2db26708 Bug 1136226 - Implement 8x16 SIMD multiplies. r=bbouvier
There are no 8x16 SSE multiply instructions, so expand these multiplies in
terms of 16x8 multiplies.
2016-05-31 09:00:18 -07:00
Jakob Stoklund Olesen
74578209dd Bug 1136226 - Implement 8x16 SIMD shift operators. r=bbouvier
These operations don't have SSE instructions, so express them in terms of 16x8
shifts in MSimdShift::AddLegalized.
2016-05-31 09:00:18 -07:00
Jakob Stoklund Olesen
4e590a427b Bug 1136226 - Implement 16x8 SIMD shift operators. r=bbouvier
These all have corresponding SSE instructions.

The 8x16 shifts don't have SSE instructions, so they will be added by the next
commit.
2016-05-31 09:00:18 -07:00
Jakob Stoklund Olesen
e06a11b5f5 Bug 1136226 - Binary functions for small integer SIMD types. r=bbouvier
- Rename LSimdBinaryBitwiseX4 to LSimdBinaryBitwise and use it for all types.
- Add pmullw to the assembler for 16x8 multiplies.

Don't implement 8x16 multiplies just yet. There are no SSE instructions for
that operation, so they need to be synthesied from 16x8 multiplies and shuffles.
2016-05-31 09:00:18 -07:00