1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-25 04:02:41 +01:00
llvm-mirror/include/llvm
Evan Cheng 25dcf9b830 Teach dag combine to fold the following transformation more aggressively:
(OP (trunc x), (trunc y)) -> (trunc (OP x, y))

Unfortunately this simple change causes dag combine to infinite looping. The problem is the shrink demanded ops optimization tend to canonicalize expressions in the opposite manner. That is badness. This patch disable those optimizations in dag combine but instead it is done as a late pass in sdisel.

This also exposes some deficiencies in dag combine and x86 setcc / brcond lowering. Teach them to look pass ISD::TRUNCATE in various places.

llvm-svn: 92849
2010-01-06 19:38:29 +00:00
..
ADT Some versions of GCC don't like non-static data members in sizeof 2010-01-05 15:28:21 +00:00
Analysis Fix struct/class mismatch 2010-01-06 17:16:00 +00:00
Assembly
Bitcode Remove old header. 2010-01-01 00:04:49 +00:00
CodeGen Teach dag combine to fold the following transformation more aggressively: 2010-01-06 19:38:29 +00:00
CompilerDriver Add a 'set_option' action for use in OptionPreprocessor. 2009-12-17 07:49:16 +00:00
Config Add CMake and configure logic to create llvm/Config/Disassemblers.defs. 2009-11-25 04:30:13 +00:00
ExecutionEngine
MC Fix a bunch of little errors that Clang complains about when its being pedantic 2009-12-19 07:05:23 +00:00
Support Fix a build error by adding a missing commit. 2010-01-05 01:36:30 +00:00
System Make Path use StringRef instead of std::string where possible. 2009-12-17 21:02:39 +00:00
Target Teach dag combine to fold the following transformation more aggressively: 2010-01-06 19:38:29 +00:00
Transforms Make RecursivelyDeleteTriviallyDeadInstructions, 2010-01-05 15:45:31 +00:00
AbstractTypeUser.h
Argument.h sink twine.h down out of Value.h. It is annoying that you need 2009-12-29 07:12:03 +00:00
Attributes.h Fix the Emacs mode string. 2010-01-04 07:16:12 +00:00
AutoUpgrade.h
BasicBlock.h sink twine.h down out of Value.h. It is annoying that you need 2009-12-29 07:12:03 +00:00
CallGraphSCCPass.h
CallingConv.h Add MSP430 interrupt calling conv. No functionality change yet. 2009-12-07 02:27:35 +00:00
CMakeLists.txt
Constant.h
Constants.h add a layer of accessors around the Value::SubClassData member, and use 2009-12-29 02:14:09 +00:00
DerivedTypes.h This fixes a memory leak in OpaqueType found by Google's internal heapchecker. 2009-12-17 19:55:06 +00:00
Function.h add a layer of accessors around the Value::SubClassData member, and use 2009-12-29 02:14:09 +00:00
GlobalAlias.h sink twine.h down out of Value.h. It is annoying that you need 2009-12-29 07:12:03 +00:00
GlobalValue.h sink twine.h down out of Value.h. It is annoying that you need 2009-12-29 07:12:03 +00:00
GlobalVariable.h sink twine.h down out of Value.h. It is annoying that you need 2009-12-29 07:12:03 +00:00
InlineAsm.h
InstrTypes.h sink twine.h down out of Value.h. It is annoying that you need 2009-12-29 07:12:03 +00:00
Instruction.def
Instruction.h Final step in the metadata API restructuring: move the 2009-12-29 09:01:33 +00:00
Instructions.h sink the Instruction::HasMetadata bit into SubclassData. 2009-12-29 02:46:09 +00:00
IntrinsicInst.h convert various IntrinsicInst's to use class instead of struct. 2010-01-05 05:21:26 +00:00
Intrinsics.h
Intrinsics.td Delete renaming use of dead dbg intrinsics. 2010-01-05 01:47:06 +00:00
IntrinsicsAlpha.td
IntrinsicsARM.td
IntrinsicsCellSPU.td
IntrinsicsPowerPC.td
IntrinsicsX86.td Remove the gcc builtins from the intrinsics, we'll lower them 2009-12-01 03:18:26 +00:00
IntrinsicsXCore.td
LinkAllPasses.h remove the random sampling framework, which is not maintained anymore. 2010-01-02 20:07:03 +00:00
LinkAllVMCore.h improve portability to avoid conflicting with std::next in c++'0x. 2009-12-03 00:50:42 +00:00
Linker.h
LLVMContext.h Final step in the metadata API restructuring: move the 2009-12-29 09:01:33 +00:00
Metadata.h NamedMDNode is a collection MDNodes. 2010-01-05 20:41:31 +00:00
Module.h Final step in the metadata API restructuring: move the 2009-12-29 09:01:33 +00:00
ModuleProvider.h
OperandTraits.h
Operator.h
Pass.h Move several function bodies which are rarely inlined out of line. 2009-12-14 19:43:09 +00:00
PassAnalysisSupport.h
PassManager.h
PassManagers.h
PassSupport.h
SymbolTableListTraits.h
Type.h Add a new predicate for integer type equality tests. 2010-01-05 20:04:48 +00:00
TypeSymbolTable.h
Use.h
User.h
Value.h Remove #include of metadata.h from intrinsicinst.h. The only 2009-12-31 01:32:41 +00:00
ValueSymbolTable.h