1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-22 12:33:33 +02:00
llvm-mirror/lib
Kyle Butt 2a20a3f170 IfConversion: Rescan diamonds.
The cost of predicating a diamond is only the instructions that are not shared
between the two branches. Additionally If a predicate clobbering instruction
occurs in the shared portion of the branches (e.g. a cond move), it may still
be possible to if convert the sub-cfg. This change handles these two facts by
rescanning the non-shared portion of a diamond sub-cfg to recalculate both the
predication cost and whether both blocks are pred-clobbering.

Fixed 2 bugs before recommitting. Branch instructions must be compared and found
identical before diamond conversion. Also, predicate-clobbering instructions in
the shared prefix disqualifies a potential diamond conversion. Includes tests
for both.

llvm-svn: 279670
2016-08-24 21:34:24 +00:00
..
Analysis [PM] Introduce basic update capabilities to the new PM's CGSCC pass 2016-08-24 09:37:14 +00:00
AsmParser DebugInfo: Add flag to CU to disable emission of inline debug info into the skeleton CU 2016-08-24 18:29:49 +00:00
Bitcode DebugInfo: Add flag to CU to disable emission of inline debug info into the skeleton CU 2016-08-24 18:29:49 +00:00
CodeGen IfConversion: Rescan diamonds. 2016-08-24 21:34:24 +00:00
DebugInfo Remove unused translation unit. 2016-08-23 20:08:02 +00:00
ExecutionEngine Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes. 2016-08-23 17:14:32 +00:00
Fuzzer [libFuzzer] use __attribute__((target("popcnt"))) only on x86_64 2016-08-24 01:38:42 +00:00
IR DebugInfo: Add flag to CU to disable emission of inline debug info into the skeleton CU 2016-08-24 18:29:49 +00:00
IRReader
LibDriver Object: Replace NewArchiveIterator with a simpler NewArchiveMember class. NFCI. 2016-06-29 22:27:42 +00:00
LineEditor
Linker Linker: Avoid some ridiculous indentation by using a temporary. NFC 2016-08-15 22:41:42 +00:00
LTO [ThinLTO] Add caching to the new LTO API 2016-08-23 21:30:12 +00:00
MC [MC] Support .dc directives in assembler parser 2016-08-23 21:34:53 +00:00
Object Reformat. 2016-08-22 00:58:47 +00:00
ObjectYAML [macho2yaml] Don't write empty linkedit data 2016-08-17 21:46:04 +00:00
Option Replace "fallthrough" comments with LLVM_FALLTHROUGH 2016-08-17 05:10:15 +00:00
Passes [PM] Introduce basic update capabilities to the new PM's CGSCC pass 2016-08-24 09:37:14 +00:00
ProfileData Use range algorithms instead of unpacking begin/end 2016-08-11 21:15:00 +00:00
Support Preserve a pointer to the newly allocated signal stack as well. That too 2016-08-24 03:42:51 +00:00
TableGen Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes. 2016-08-23 17:14:32 +00:00
Target ARM: don't diagnose cbz/cbnz to Thumb functions. 2016-08-24 21:21:29 +00:00
Transforms [LV] Unify vector and scalar maps 2016-08-24 18:23:17 +00:00
CMakeLists.txt
LLVMBuild.txt