1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-22 20:43:44 +02:00
llvm-mirror/include/llvm
Matthias Braun 47028079f1 DAGCombiner: Canonicalize select(and/or,x,y) depending on target.
This is based on the following equivalences:
select(C0 & C1, X, Y) <=> select(C0, select(C1, X, Y), Y)
select(C0 | C1, X, Y) <=> select(C0, X, select(C1, X, Y))

Many target cannot perform and/or on the CPU flags and therefore the
right side should be choosen to avoid materializign the i1 flags in an
integer register. If the target can perform this operation efficiently
we normalize to the left form.

Differential Revision: http://reviews.llvm.org/D7622

llvm-svn: 231507
2015-03-06 19:49:10 +00:00
..
ADT Revert "[ADT] fail-fast iterators for DenseMap" 2015-03-04 06:05:37 +00:00
Analysis Reformat. 2015-03-05 01:25:19 +00:00
AsmParser
Bitcode [opaque pointer type] Bitcode support for explicit type parameter on GEP. 2015-02-25 01:08:52 +00:00
CodeGen [AsmPrinter][TLOF] 32-bit MachO support for replacing GOT equivalents 2015-03-06 13:49:05 +00:00
Config [Support/Timer] Make GetMallocUsage() aware of jemalloc. 2015-02-19 07:27:14 +00:00
DebugInfo DWARFFormValue: Add getAsSignedConstant method. 2015-03-04 22:07:41 +00:00
ExecutionEngine Fold init() helpers into constructors. NFC. 2015-03-06 16:21:15 +00:00
IR [ConstantRange] Teach multiply to be cleverer about signed ranges. 2015-03-06 15:50:47 +00:00
IRReader
LineEditor
Linker Remember to move a type to the correct set when setting the body. 2015-03-06 00:50:21 +00:00
LTO [LTO API] fix memory leakage introduced at r230290. 2015-02-25 21:20:53 +00:00
MC Use the generic Lfunc_begin label on ppc. 2015-03-05 18:55:50 +00:00
Object Object: Add range iterators to Archive symbols 2015-03-04 02:05:06 +00:00
Option Remove explicit no-op dtor in favor of the implicit dtor so as not to disable/deprecate the copy operations. 2015-03-03 19:53:02 +00:00
ProfileData Add another missing header that used to be included transitively. 2015-03-02 01:08:07 +00:00
Support Replace PrintStackTrace(FILE*) with PrintStackTrace(raw_ostream&) 2015-03-05 19:10:52 +00:00
TableGen Removing LLVM_DELETED_FUNCTION, as MSVC 2012 was the last reason for requiring the macro. NFC; LLVM edition. 2015-02-15 22:54:22 +00:00
Target DAGCombiner: Canonicalize select(and/or,x,y) depending on target. 2015-03-06 19:49:10 +00:00
Transforms Add a new pass "Loop Interchange" 2015-03-06 10:11:25 +00:00
CMakeLists.txt
InitializePasses.h Add a new pass "Loop Interchange" 2015-03-06 10:11:25 +00:00
LinkAllIR.h
LinkAllPasses.h Add a new pass "Loop Interchange" 2015-03-06 10:11:25 +00:00
module.modulemap [modules] Add include/llvm/IR/DebugInfoFlags.def to the textual headers list. 2015-02-25 01:44:09 +00:00
module.modulemap.build
Pass.h Removing LLVM_DELETED_FUNCTION, as MSVC 2012 was the last reason for requiring the macro. NFC; LLVM edition. 2015-02-15 22:54:22 +00:00
PassAnalysisSupport.h Removing LLVM_DELETED_FUNCTION, as MSVC 2012 was the last reason for requiring the macro. NFC; LLVM edition. 2015-02-15 22:54:22 +00:00
PassInfo.h Removing LLVM_DELETED_FUNCTION, as MSVC 2012 was the last reason for requiring the macro. NFC; LLVM edition. 2015-02-15 22:54:22 +00:00
PassRegistry.h Revert r231276 (including r231277): Add a lock() function in PassRegistry to speed up multi-thread synchronization. 2015-03-05 17:53:00 +00:00
PassSupport.h