llvm-mirror/include/llvm
Manman Ren 78b8d454cc X86 Peephole: fold loads to the source register operand if possible.
Machine CSE and other optimizations can remove instructions so folding
is possible at peephole while not possible at ISel.

This patch is a rework of r160919 and was tested on clang self-host on my local
machine.

rdar://10554090 and rdar://11873276

llvm-svn: 161152
2012-08-02 00:56:42 +00:00
..
ADT Reference IntrusiveRefCntPtr in doxygen doc of RefCountedBase to get a link to the pointer class documentation. 2012-08-01 14:53:13 +00:00
Analysis revert r160742: it's breaking CMake build 2012-07-25 18:49:28 +00:00
Assembly Prune some includes and forward declarations. 2012-03-26 06:58:25 +00:00
Bitcode Remove 'static' from inline functions defined in header files. 2012-06-20 08:39:33 +00:00
CodeGen Added MachineRegisterInfo::hasOneDef() 2012-07-30 23:48:14 +00:00
Config autoconf: Re-introduce LLVM_HOSTTRIPLE since r143500, as rework of PR11060. 2012-07-22 03:04:52 +00:00
DebugInfo DebugInfo library: add support for fetching absolute paths to source files 2012-07-19 07:03:58 +00:00
ExecutionEngine Fixed few warnings. 2012-07-19 04:50:12 +00:00
MC Give MCRegisterInfo an implementation file. 2012-07-27 16:25:20 +00:00
Object [Object] Remove unneeded const_cast. 2012-07-24 21:07:56 +00:00
Support Initial commit of new FileOutputBuffer support class. 2012-08-01 02:29:50 +00:00
TableGen Eliminate struct TableGenBackend. 2012-06-13 05:15:49 +00:00
Target X86 Peephole: fold loads to the source register operand if possible. 2012-08-02 00:56:42 +00:00
Transforms add EmitStrNLen() 2012-07-25 17:18:59 +00:00
Argument.h Unweaken vtables as per http://llvm.org/docs/CodingStandards.html#ll_virtual_anch 2011-12-20 02:50:00 +00:00
Attributes.h In order to correctly compile 2012-07-24 21:40:17 +00:00
AutoUpgrade.h remove autoupgrade support for really old-style debug info intrinsics. 2011-11-27 06:18:33 +00:00
BasicBlock.h Add a constified getLandingPad() method. 2012-01-31 00:26:24 +00:00
CallGraphSCCPass.h
CallingConv.h Use X86_thiscall calling convention for Win64 as well. 2011-03-03 07:49:07 +00:00
CMakeLists.txt llvm/include/llvm/CMakeLists.txt: Cut dependency to intrinsics_gen. 2012-07-06 15:55:39 +00:00
Constant.h getAllOnesValue also works for vectors of integers. 2012-06-04 07:18:12 +00:00
Constants.h When linearizing a multiplication, return at once if we see a factor of zero, 2012-06-13 09:42:13 +00:00
DebugInfo.h Add a print method to the ObjC property object. 2012-07-06 19:12:31 +00:00
DefaultPasses.h Add a couple missing includes; found while analyzing LLVM headers. 2011-11-04 18:19:43 +00:00
DerivedTypes.h Cache the sized-ness of struct types, once we reach the steady state of 2012-03-07 02:33:09 +00:00
DIBuilder.h Remove tabs. 2012-07-19 00:01:00 +00:00
Function.h Teach Function::hasAddressTaken that BlockAddress doesn't really take 2012-05-12 08:30:16 +00:00
GlobalAlias.h Remove DEFINE_TRANSPARENT_CASTED_OPERAND_ACCESSORS, folding its 2011-08-22 09:37:03 +00:00
GlobalValue.h Revert r159136 due to PR13124. 2012-06-27 17:10:33 +00:00
GlobalVariable.h Clean-up after r159077. 2012-06-23 12:14:23 +00:00
GVMaterializer.h
InitializePasses.h Start scaffolding for a MachineTraceMetrics analysis pass. 2012-07-26 18:38:11 +00:00
InlineAsm.h Prune some includes and forward declarations. 2012-03-26 06:58:25 +00:00
InstrTypes.h Add some missing anchors. 2011-12-01 08:00:17 +00:00
Instruction.def [unwind removal] Remove all of the code for the dead 'unwind' instruction. There 2012-02-06 21:44:22 +00:00
Instruction.h Refactor operation equivalence checking in BBVectorize by extending Instruction::isSameOperationAs. 2012-06-28 05:42:26 +00:00
Instructions.h add CallSite/CallInst/InvokeInst::hasFnAttr() 2012-06-25 16:16:58 +00:00
IntrinsicInst.h Remove the eh.exception and eh.selector intrinsics. Also remove a hack to copy 2012-01-31 01:46:13 +00:00
Intrinsics.h generalize this to allow any argument. 2012-05-27 19:17:16 +00:00
Intrinsics.td Add support for v16i32/v16i64 into the code generator. This is required for backends that use i32/i64 vectors for the getSetCCResultType function. 2012-07-26 21:22:00 +00:00
IntrinsicsARM.td Add support for ARM ldrexd/strexd intrinsics. They both use i32 register pairs 2011-05-28 04:07:29 +00:00
IntrinsicsCellSPU.td
IntrinsicsHexagon.td Fix hexagon gcc builtin names to use '_' instead of '.'. 2012-06-28 20:08:47 +00:00
IntrinsicsMips.td Revert commit r160307. We decide to move builtins selection to the backend. 2012-07-17 08:14:45 +00:00
IntrinsicsNVVM.td Remove the PTX back-end and all of its artifacts (triple, etc.) 2012-05-24 21:38:21 +00:00
IntrinsicsPowerPC.td
IntrinsicsX86.td Add intrinsics for Ivy Bridge's rdrand instruction. 2012-07-12 09:31:43 +00:00
IntrinsicsXCore.td Update IntrinsicsXCore.td with the normal LLVM notice at the top of the file. 2011-10-13 21:08:11 +00:00
IRBuilder.h Add support for attaching branch weight metadata directly from the IRBuilder. 2012-07-16 07:45:06 +00:00
LinkAllPasses.h add a new pass to instrument loads and stores for run-time bounds checking 2012-05-22 17:19:09 +00:00
LinkAllVMCore.h Missed a spot removing Alarm. 2010-12-07 18:50:33 +00:00
Linker.h Prune some includes and forward declarations. 2012-03-26 06:58:25 +00:00
LLVMContext.h revert r158660, since Chris has some issues with this patch (namely using code to reprent information only used by the compiler) 2012-06-18 23:34:26 +00:00
MDBuilder.h Update the header guard I missed when moving the header. 2012-07-15 23:45:20 +00:00
Metadata.h Move the Metadata merging methods from GVN and make them public in MDNode. 2012-06-16 20:33:37 +00:00
Module.h I noticed that named metadata doesn't provide a direct way of getting at the 2012-05-16 12:25:43 +00:00
OperandTraits.h Remove DEFINE_TRANSPARENT_CASTED_OPERAND_ACCESSORS, folding its 2011-08-22 09:37:03 +00:00
Operator.h Remove support for the special 'fast' value for fpmath accuracy for the moment. 2012-04-16 19:39:33 +00:00
Pass.h Added TargetPassConfig::disablePass/substitutePass as a general mechanism to override specific passes. 2012-02-15 03:21:47 +00:00
PassAnalysisSupport.h Add a couple missing includes; found while analyzing LLVM headers. 2011-11-04 18:19:43 +00:00
PassManager.h Add pass printer passes in the right place. 2012-02-01 07:16:20 +00:00
PassManagers.h Use ArrayRef instead of an explicit vector type. 2012-05-14 07:53:40 +00:00
PassRegistry.h Attempt to fix valgrind complaining about (benign) leaks in pass registration by having PassRegistry 2010-10-20 22:22:30 +00:00
PassSupport.h Add Tsan annotations to the pass system. 2011-12-08 00:15:41 +00:00
SymbolTableListTraits.h
Type.h add StructType helpers too. 2012-01-26 00:06:44 +00:00
TypeBuilder.h Move llvm/Support/TypeBuilder.h -> llvm/TypeBuilder.h. This completes 2012-07-15 23:45:24 +00:00
Use.h Reinstate r133513 (reverted in r133700) with an additional fix for a 2011-06-23 09:09:15 +00:00
User.h Grammar. 2012-05-16 22:08:58 +00:00
Value.h The MDString class stored a StringRef to the string which was already in a 2012-04-10 20:12:16 +00:00
ValueSymbolTable.h Merge System into Support. 2010-11-29 18:16:10 +00:00