1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-19 02:52:53 +02:00
llvm-mirror/lib
Craig Topper 15a708f466 [X86] Don't use CombineTo to skip adding new nodes to the DAGCombiner worklist in combineMul.
I'm not sure if this was trying to avoid optimizing the new nodes further or what. Or maybe to prevent a cycle if something tried to reform the multiply? But I don't think its a reliable way to do that. If the user of the expanded multiply is visited by the DAGCombiner after this conversion happens, the DAGCombiner will check its operands, see that they haven't been visited by the DAGCombiner before and it will then add the first node to the worklist. This process will repeat until all the new nodes are visited.

So this seems like an unreliable prevention at best. So this patch just returns the new nodes like any other combine. If this starts causing problems we can try to add target specific nodes or something to more directly prevent optimizations.

Now that we handle the combine normally, we can combine any negates the mul expansion creates into their users since those will be visited now.

llvm-svn: 338007
2018-07-26 05:40:10 +00:00
..
Analysis [SCEV] Add [zs]ext{C,+,x} -> (D + [zs]ext{C-D,+,x})<nuw><nsw> transform 2018-07-25 18:01:41 +00:00
AsmParser [AsmParser] Fix inconsistent declaration parameter name 2018-07-12 02:03:53 +00:00
BinaryFormat [dwarfdump] Add pretty printer for accelerator table based on Atom. 2018-07-13 17:21:51 +00:00
Bitcode [ThinLTO] Only emit referenced type id records in index files 2018-07-19 22:25:56 +00:00
CodeGen Revert r337981: it breaks the debuginfo-tests 2018-07-26 03:21:40 +00:00
DebugInfo [DWARF v5] Don't report an error when the .debug_rnglists section is empty or non-existent. Fixes PR38297. 2018-07-26 01:12:41 +00:00
Demangle [demangler] call terminate() if allocation failed 2018-07-23 22:23:04 +00:00
ExecutionEngine Move JIT listener C binding fallbackks to ExecutionEngineBindings.cpp. 2018-07-25 15:04:57 +00:00
Fuzzer
FuzzMutate
IR [Dominators] Assert if there is modification to DelBB while it is awaiting deletion 2018-07-25 06:18:33 +00:00
IRReader
LineEditor
Linker [LTO] Fix linking with an alias defined using another alias. 2018-07-13 21:58:55 +00:00
LTO [LTO] Handle __imp_ (dllimport) symbols consistently with lld 2018-07-23 22:33:57 +00:00
MC [COFF] Use comdat shared constants for MinGW as well 2018-07-25 18:35:42 +00:00
Object [llvm-objdump] Add dynamic section printing to private-headers option 2018-07-25 11:09:20 +00:00
ObjectYAML MC: Implement support for new .addrsig and .addrsig_sym directives. 2018-07-17 22:17:18 +00:00
Option
Passes [ThinLTO] Enable ThinLTO WholeProgramDevirt and LowerTypeTests in new PM 2018-07-19 14:51:32 +00:00
ProfileData [NFC] Change sample profile format enum name SPF_Raw_Binary to SPF_Binary. 2018-06-12 05:53:49 +00:00
Support [Support] Introduce createStringError helper function 2018-07-26 02:21:40 +00:00
TableGen [TableGen] Add missing std::moves to fix build failure. 2018-07-11 08:57:56 +00:00
Target [X86] Don't use CombineTo to skip adding new nodes to the DAGCombiner worklist in combineMul. 2018-07-26 05:40:10 +00:00
Testing
ToolDrivers Give llvm-lib rudimentary help output. 2018-07-14 02:29:44 +00:00
Transforms [LoadStoreVectorizer] Use const reference 2018-07-26 01:11:36 +00:00
WindowsManifest
XRay [XRay][compiler-rt] Add PID field to llvm-xray tool and add PID metadata record entry in FDR mode 2018-07-13 05:38:22 +00:00
CMakeLists.txt
LLVMBuild.txt