haikuwebkit/Source/JavaScriptCore/b3
Saam Barati 84cd9bea46 Add an option for canonicalizePrePostIncrements
https://bugs.webkit.org/show_bug.cgi?id=229211
<rdar://problem/82050126>

Reviewed by Mark Lam.

The current phase has bugs. Let's disable it for now until the bugs
are fixed. See discussion about the bugs I spotted in:
https://bugs.webkit.org/show_bug.cgi?id=228538

* b3/B3Generate.cpp:
(JSC::B3::generateToAir):
* b3/testb3_3.cpp:
(addShrTests):
* runtime/OptionsList.h:


Canonical link: https://commits.webkit.org/240624@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281178 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-18 02:27:03 +00:00
..
air [ARM64] Clean up and fix Pre/Post-Indexed Address Mode to Air for ARM64 (Load Instruction) 2021-08-09 23:46:09 +00:00
B3ArgumentRegValue.cpp
B3ArgumentRegValue.h [clang-tidy] Run modernize-use-override over JSC, then ensure as much as possible is final 2020-05-12 18:48:02 +00:00
B3AtomicValue.cpp
B3AtomicValue.h [clang-tidy] Run modernize-use-override over JSC, then ensure as much as possible is final 2020-05-12 18:48:02 +00:00
B3BackwardsCFG.h
B3BackwardsDominators.h
B3Bank.cpp
B3Bank.h
B3BasicBlock.cpp Fix non-unified builds for x86_64 2020-05-23 14:57:15 +00:00
B3BasicBlock.h [JSC] B3 PureCSE should ignore values which are moved to new BasicBlock 2020-07-09 06:30:53 +00:00
B3BasicBlockInlines.h
B3BasicBlockUtils.h
B3BlockInsertionSet.cpp [IWYU] Remove unnecessary includes from JSC implementation files 2020-05-15 19:39:36 +00:00
B3BlockInsertionSet.h
B3BlockWorklist.h
B3BottomProvider.h
B3BottomTupleValue.cpp [JSC] Add B3::BottomTupleValue node 2020-07-30 04:42:46 +00:00
B3BottomTupleValue.h [JSC] Add B3::BottomTupleValue node 2020-07-30 04:42:46 +00:00
B3BreakCriticalEdges.cpp [IWYU] Remove unnecessary includes from JSC implementation files 2020-05-15 19:39:36 +00:00
B3BreakCriticalEdges.h
B3CCallValue.cpp
B3CCallValue.h [clang-tidy] Run modernize-use-override over JSC, then ensure as much as possible is final 2020-05-12 18:48:02 +00:00
B3CFG.h
B3CanonicalizePrePostIncrements.cpp [ARM64] Add Pre/Post-Indexed Address Mode to Air for ARM64 (Store Instruction) 2021-08-15 17:41:03 +00:00
B3CanonicalizePrePostIncrements.h Add Pre/Post-Indexed Address Mode to Air for ARM64 2021-07-30 20:44:47 +00:00
B3CaseCollection.cpp Fix non-unified builds for x86_64 2020-05-23 14:57:15 +00:00
B3CaseCollection.h
B3CaseCollectionInlines.h
B3CheckSpecial.cpp Remove WTF::Optional synonym for std::optional, using that class template directly instead 2021-05-30 16:11:40 +00:00
B3CheckSpecial.h Remove WTF::Optional synonym for std::optional, using that class template directly instead 2021-05-30 16:11:40 +00:00
B3CheckValue.cpp
B3CheckValue.h [clang-tidy] Run modernize-use-override over JSC, then ensure as much as possible is final 2020-05-12 18:48:02 +00:00
B3Common.cpp Unreviewed, reverting r280609. 2021-08-04 19:24:47 +00:00
B3Common.h Unreviewed, reverting r280609. 2021-08-04 19:24:47 +00:00
B3Commutativity.cpp
B3Commutativity.h
B3Compile.cpp [JSC] Implement a B3::Compilation replacement for wasm-llint 2021-01-19 00:24:52 +00:00
B3Compile.h [JSC] Implement a B3::Compilation replacement for wasm-llint 2021-01-19 00:24:52 +00:00
B3ComputeDivisionMagic.h
B3Const32Value.cpp Rename Checked::unsafeGet() to Checked::value() 2021-06-02 05:21:13 +00:00
B3Const32Value.h [clang-tidy] Run modernize-use-override over JSC, then ensure as much as possible is final 2020-05-12 18:48:02 +00:00
B3Const64Value.cpp Rename Checked::unsafeGet() to Checked::value() 2021-06-02 05:21:13 +00:00
B3Const64Value.h [clang-tidy] Run modernize-use-override over JSC, then ensure as much as possible is final 2020-05-12 18:48:02 +00:00
B3ConstDoubleValue.cpp Unreviewed, casting to unsigned long long to suppress warning 2021-04-13 08:34:49 +00:00
B3ConstDoubleValue.h [clang-tidy] Run modernize-use-override over JSC, then ensure as much as possible is final 2020-05-12 18:48:02 +00:00
B3ConstFloatValue.cpp [JSC] B3 reduce-double-to-float should reduce only when constant double is canonical one to reduced float value 2021-04-10 19:00:03 +00:00
B3ConstFloatValue.h [clang-tidy] Run modernize-use-override over JSC, then ensure as much as possible is final 2020-05-12 18:48:02 +00:00
B3ConstPtrValue.h
B3ConstrainedValue.cpp
B3ConstrainedValue.h
B3DataSection.cpp
B3DataSection.h [JSC] Implement a B3::Compilation replacement for wasm-llint 2021-01-19 00:24:52 +00:00
B3Dominators.h
B3DuplicateTails.cpp Fix non-unified builds for x86_64 2020-05-23 14:57:15 +00:00
B3DuplicateTails.h
B3Effects.cpp [IWYU] Remove unnecessary includes from JSC implementation files 2020-05-15 19:39:36 +00:00
B3Effects.h
B3EliminateCommonSubexpressions.cpp [IWYU] Remove unnecessary includes from JSC implementation files 2020-05-15 19:39:36 +00:00
B3EliminateCommonSubexpressions.h
B3EliminateDeadCode.cpp [IWYU] Remove unnecessary includes from JSC implementation files 2020-05-15 19:39:36 +00:00
B3EliminateDeadCode.h
B3EnsureLoopPreHeaders.cpp Fix non-unified builds for x86_64 2020-05-23 14:57:15 +00:00
B3EnsureLoopPreHeaders.h
B3ExtractValue.cpp
B3ExtractValue.h [clang-tidy] Run modernize-use-override over JSC, then ensure as much as possible is final 2020-05-12 18:48:02 +00:00
B3FenceValue.cpp Fix non-unified builds for x86_64 2020-05-23 14:57:15 +00:00
B3FenceValue.h [clang-tidy] Run modernize-use-override over JSC, then ensure as much as possible is final 2020-05-12 18:48:02 +00:00
B3FixSSA.cpp [IWYU] Remove unnecessary includes from JSC implementation files 2020-05-15 19:39:36 +00:00
B3FixSSA.h
B3FoldPathConstants.cpp [IWYU] Remove unnecessary includes from JSC implementation files 2020-05-15 19:39:36 +00:00
B3FoldPathConstants.h
B3FrequencyClass.cpp
B3FrequencyClass.h
B3FrequentedBlock.h
B3Generate.cpp Add an option for canonicalizePrePostIncrements 2021-08-18 02:27:03 +00:00
B3Generate.h
B3GenericBlockInsertionSet.h [JSC] B3 PureCSE should ignore values which are moved to new BasicBlock 2020-07-09 06:30:53 +00:00
B3GenericFrequentedBlock.h
B3HeapRange.h
B3HoistLoopInvariantValues.cpp Fix non-unified builds for x86_64 2020-05-23 14:57:15 +00:00
B3HoistLoopInvariantValues.h
B3InferSwitches.cpp [IWYU] Remove unnecessary includes from JSC implementation files 2020-05-15 19:39:36 +00:00
B3InferSwitches.h
B3InsertionSet.cpp [JSC] Add B3::BottomTupleValue node 2020-07-30 04:42:46 +00:00
B3InsertionSet.h
B3InsertionSetInlines.h
B3Kind.cpp
B3Kind.h [JSC] Add wasm atomics instructions 2020-11-28 00:02:55 +00:00
B3LegalizeMemoryOffsets.cpp Fix non-unified builds for x86_64 2020-05-23 14:57:15 +00:00
B3LegalizeMemoryOffsets.h
B3LowerMacros.cpp [JSC] Use ARM atomic ops in wasm 2020-11-28 04:31:41 +00:00
B3LowerMacros.h
B3LowerMacrosAfterOptimizations.cpp Always use OperationPtrTag for all operations and annotate operations in CSS JIT 2020-09-30 07:19:47 +00:00
B3LowerMacrosAfterOptimizations.h
B3LowerToAir.cpp [ARM64] Add Pre/Post-Indexed Address Mode to Air for ARM64 (Store Instruction) 2021-08-15 17:41:03 +00:00
B3LowerToAir.h
B3MathExtras.cpp Always use OperationPtrTag for all operations and annotate operations in CSS JIT 2020-09-30 07:19:47 +00:00
B3MathExtras.h
B3MemoryValue.cpp Fix non-unified builds for x86_64 2020-05-23 14:57:15 +00:00
B3MemoryValue.h [clang-tidy] Run modernize-use-override over JSC, then ensure as much as possible is final 2020-05-12 18:48:02 +00:00
B3MemoryValueInlines.h
B3MoveConstants.cpp B3MoveConstants should filter directly on Values, and only create ValueKeys when useful 2021-06-03 01:07:45 +00:00
B3MoveConstants.h
B3NativeTraits.h
B3NaturalLoops.h
B3Opcode.cpp Remove WTF::Optional synonym for std::optional, using that class template directly instead 2021-05-30 16:11:40 +00:00
B3Opcode.h Remove <wtf/Optional.h> 2021-06-02 06:45:51 +00:00
B3OptimizeAssociativeExpressionTrees.cpp Various compile-time boolean flags could/should be marked constexpr 2020-05-22 02:17:54 +00:00
B3OptimizeAssociativeExpressionTrees.h
B3Origin.cpp
B3Origin.h
B3OriginDump.cpp
B3OriginDump.h
B3PCToOriginMap.h We should drop B3 values while running Air 2021-06-12 17:17:27 +00:00
B3PatchpointSpecial.cpp Next step toward using std::optional directly instead of through WTF::Optional typedef 2021-05-28 01:26:23 +00:00
B3PatchpointSpecial.h [clang-tidy] Run modernize-use-override over JSC, then ensure as much as possible is final 2020-05-12 18:48:02 +00:00
B3PatchpointValue.cpp
B3PatchpointValue.h [clang-tidy] Run modernize-use-override over JSC, then ensure as much as possible is final 2020-05-12 18:48:02 +00:00
B3PhaseScope.cpp
B3PhaseScope.h
B3PhiChildren.cpp
B3PhiChildren.h
B3Procedure.cpp AirStackSlot's uint16_t byte size is too small 2021-07-22 21:37:02 +00:00
B3Procedure.h AirStackSlot's uint16_t byte size is too small 2021-07-22 21:37:02 +00:00
B3ProcedureInlines.h Merge B3::StackSlot and Air::StackSlot 2021-06-02 23:28:30 +00:00
B3PureCSE.cpp [JSC] B3 PureCSE should ignore values which are moved to new BasicBlock 2020-07-09 06:30:53 +00:00
B3PureCSE.h
B3ReduceDoubleToFloat.cpp [JSC] B3 reduce-double-to-float should reduce only when constant double is canonical one to reduced float value 2021-04-10 19:00:03 +00:00
B3ReduceDoubleToFloat.h
B3ReduceLoopStrength.cpp Remove WTF::Optional synonym for std::optional, using that class template directly instead 2021-05-30 16:11:40 +00:00
B3ReduceLoopStrength.h [JSC] Annotate JIT operation functions called from B3 etc. 2020-09-29 18:12:28 +00:00
B3ReduceStrength.cpp Add a new pattern to instruction selector to use EXTR supported by ARM64 2021-07-01 17:25:26 +00:00
B3ReduceStrength.h
B3SSACalculator.cpp [IWYU] Remove unnecessary includes from JSC implementation files 2020-05-15 19:39:36 +00:00
B3SSACalculator.h
B3SlotBaseValue.cpp Merge B3::StackSlot and Air::StackSlot 2021-06-02 23:28:30 +00:00
B3SlotBaseValue.h Merge B3::StackSlot and Air::StackSlot 2021-06-02 23:28:30 +00:00
B3SparseCollection.h We should drop B3 values while running Air 2021-06-12 17:17:27 +00:00
B3StackmapGenerationParams.cpp
B3StackmapGenerationParams.h
B3StackmapSpecial.cpp Remove WTF::Optional synonym for std::optional, using that class template directly instead 2021-05-30 16:11:40 +00:00
B3StackmapSpecial.h Remove WTF::Optional synonym for std::optional, using that class template directly instead 2021-05-30 16:11:40 +00:00
B3StackmapValue.cpp Fix non-unified builds for x86_64 2020-05-23 14:57:15 +00:00
B3StackmapValue.h [clang-tidy] Run modernize-use-override over JSC, then ensure as much as possible is final 2020-05-12 18:48:02 +00:00
B3SuccessorCollection.h
B3SwitchCase.cpp
B3SwitchCase.h
B3SwitchValue.cpp Fix non-unified builds for x86_64 2020-05-23 14:57:15 +00:00
B3SwitchValue.h [clang-tidy] Run modernize-use-override over JSC, then ensure as much as possible is final 2020-05-12 18:48:02 +00:00
B3TimingScope.h
B3Type.cpp
B3Type.h
B3TypeMap.h [JSC] Add B3::BottomTupleValue node 2020-07-30 04:42:46 +00:00
B3UpsilonValue.cpp
B3UpsilonValue.h [clang-tidy] Run modernize-use-override over JSC, then ensure as much as possible is final 2020-05-12 18:48:02 +00:00
B3UseCounts.cpp Fix non-unified builds for x86_64 2020-05-23 14:57:15 +00:00
B3UseCounts.h
B3Validate.cpp REGRESSION (r280507): ASSERTION FAILED: !undominatedPhis.contains(value) in JSC::B3::(anonymous namespace)::Validater::validatePhisAreDominatedByUpsilons() 2021-08-05 22:39:57 +00:00
B3Validate.h
B3Value.cpp Merge B3::StackSlot and Air::StackSlot 2021-06-02 23:28:30 +00:00
B3Value.h [JSC] Add B3::BottomTupleValue node 2020-07-30 04:42:46 +00:00
B3ValueInlines.h [JSC] Add B3::BottomTupleValue node 2020-07-30 04:42:46 +00:00
B3ValueKey.cpp [JSC] Add B3::BottomTupleValue node 2020-07-30 04:42:46 +00:00
B3ValueKey.h Add Pre/Post-Indexed Address Mode to Air for ARM64 2021-07-30 20:44:47 +00:00
B3ValueKeyInlines.h Add Pre/Post-Indexed Address Mode to Air for ARM64 2021-07-30 20:44:47 +00:00
B3ValueRep.cpp [IWYU] Remove unnecessary includes from JSC implementation files 2020-05-15 19:39:36 +00:00
B3ValueRep.h [JSC] Implement a B3::ValueRep replacement for wasm-llint 2021-01-14 22:48:43 +00:00
B3Variable.cpp
B3Variable.h
B3VariableLiveness.cpp
B3VariableLiveness.h
B3VariableValue.cpp Fix non-unified builds for x86_64 2020-05-23 14:57:15 +00:00
B3VariableValue.h [clang-tidy] Run modernize-use-override over JSC, then ensure as much as possible is final 2020-05-12 18:48:02 +00:00
B3WasmAddressValue.cpp Fix non-unified builds for x86_64 2020-05-23 14:57:15 +00:00
B3WasmAddressValue.h [clang-tidy] Run modernize-use-override over JSC, then ensure as much as possible is final 2020-05-12 18:48:02 +00:00
B3WasmBoundsCheckValue.cpp Fix non-unified builds for x86_64 2020-05-23 14:57:15 +00:00
B3WasmBoundsCheckValue.h [clang-tidy] Run modernize-use-override over JSC, then ensure as much as possible is final 2020-05-12 18:48:02 +00:00
B3Width.cpp
B3Width.h [JSC] Add wasm atomics instructions 2020-11-28 00:02:55 +00:00
testb3.h [ARM64] Add Pre/Post-Indexed Address Mode to Air for ARM64 (Store Instruction) 2021-08-15 17:41:03 +00:00
testb3_1.cpp Add a new Air::Arg kind ZeroReg to let AIR recognise the new instructions/forms accepting zero register in ARM64 2021-07-13 20:38:20 +00:00
testb3_2.cpp Add a new pattern to instruction selector to utilize UMULL supported by ARM64 2021-08-03 04:18:22 +00:00
testb3_3.cpp Add an option for canonicalizePrePostIncrements 2021-08-18 02:27:03 +00:00
testb3_4.cpp
testb3_5.cpp Unreviewed, reverting r275867. 2021-04-13 18:29:16 +00:00
testb3_6.cpp We should drop B3 values while running Air 2021-06-12 17:17:27 +00:00
testb3_7.cpp REGRESSION(r267727): Warning spam from JSC_DECLARE_CUSTOM_GETTER 2020-10-16 14:12:08 +00:00
testb3_8.cpp r270214 broke testb3 on arm64e 2021-07-07 18:44:55 +00:00