llvm-6502/include/llvm/CodeGen
Bill Wendling e4ddbdfd3c Add the Optimize Compares pass (disabled by default).
This pass tries to remove comparison instructions when possible. For instance,
if you have this code:

   sub r1, 1
   cmp r1, 0
   bz  L1

and "sub" either sets the same flag as the "cmp" instruction or could be
converted to set the same flag, then we can eliminate the "cmp" instruction all
together. This is a important for ARM where the ALU instructions could set the
CPSR flag, but need a special suffix ('s') to do so.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110423 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-06 01:32:48 +00:00
..
Analysis.h Move several SelectionDAG-independent utility functions out of the 2010-04-21 01:22:34 +00:00
AsmPrinter.h For ARM/Darwin, add a dwarf entry indicating whether a function is arm or thumb 2010-07-21 23:03:52 +00:00
BinaryObject.h Make a few more LLVM headers parsable as standalone headers. 2009-11-05 23:01:30 +00:00
CalcSpillWeights.h Revert r110396 to fix buildbots. 2010-08-06 00:23:35 +00:00
CallingConvLower.h Reapply bottom-up fast-isel, with several fixes for x86-32: 2010-07-10 09:00:22 +00:00
FastISel.h Delete fast-isel's trivial load optimization; it breaks debugging because 2010-07-14 17:25:37 +00:00
FunctionLoweringInfo.h Reapply bottom-up fast-isel, with several fixes for x86-32: 2010-07-10 09:00:22 +00:00
GCMetadata.h Trailing whitespace. 2010-07-01 01:00:22 +00:00
GCMetadataPrinter.h Trailing whitespace. 2010-07-01 01:00:22 +00:00
GCs.h Rename some GC classes so that their roll will hopefully be clearer. 2008-08-17 18:44:35 +00:00
GCStrategy.h Tidy up #includes, deleting a bunch of unnecessary #includes. 2009-01-05 17:59:02 +00:00
IntrinsicLowering.h Get rid of these cache variables, which are a holdover from the days when 2009-06-26 20:33:47 +00:00
ISDOpcodes.h When splitting a VAARG, remember its alignment. 2010-06-26 18:22:20 +00:00
JITCodeEmitter.h Add a "PadTo" field to the emitULEB128Bytes method. This will pad out to the 2010-04-18 00:51:49 +00:00
LatencyPriorityQueue.h Eliminate the use of PriorityQueue and just use a std::vector, 2010-05-26 18:52:00 +00:00
LinkAllAsmWriterComponents.h Make a few more LLVM headers parsable as standalone headers. 2009-11-05 23:01:30 +00:00
LinkAllCodegenComponents.h Remove the local register allocator. 2010-06-15 21:58:33 +00:00
LiveInterval.h Factored out a bit of common code to mark VNInfos for deletion. 2010-07-26 01:49:41 +00:00
LiveIntervalAnalysis.h Revert r110396 to fix buildbots. 2010-08-06 00:23:35 +00:00
LiveStackAnalysis.h Revert r110396 to fix buildbots. 2010-08-06 00:23:35 +00:00
LiveVariables.h Revert r110396 to fix buildbots. 2010-08-06 00:23:35 +00:00
MachineBasicBlock.h Add a getFirstNonPHI utility function. 2010-07-07 14:33:51 +00:00
MachineCodeEmitter.h change EH related stuff (other than EH_LABEL) to use MCSymbol 2010-03-14 01:41:15 +00:00
MachineCodeInfo.h Make a few more LLVM headers parsable as standalone headers. 2009-11-05 23:01:30 +00:00
MachineConstantPool.h Add const qualifiers to CodeGen's use of LLVM IR constructs. 2010-04-15 01:51:59 +00:00
MachineDominators.h Add an isReachableFromEntry to MachineDominators, following the one 2010-04-05 19:16:38 +00:00
MachineFrameInfo.h It's better to have the arrays, which would trigger the creation of stack 2010-07-27 01:55:19 +00:00
MachineFunction.h Remove double-def checking from MachineVerifier, so a register does not have to 2010-08-05 18:59:59 +00:00
MachineFunctionAnalysis.h Give MachineModuleInfo an actual Module*. 2010-04-06 00:51:52 +00:00
MachineFunctionPass.h Revert r110396 to fix buildbots. 2010-08-06 00:23:35 +00:00
MachineInstr.h Rename DBG_LABEL PROLOG_LABEL, because it's only used during prolog emission and 2010-07-16 22:20:36 +00:00
MachineInstrBuilder.h Add const qualifiers to CodeGen's use of LLVM IR constructs. 2010-04-15 01:51:59 +00:00
MachineJumpTableInfo.h Add explicit keywords. 2010-06-18 19:04:37 +00:00
MachineLocation.h MachineMove ctor doesn't need to to mutate input, add 'const' 2010-03-15 05:55:35 +00:00
MachineLoopInfo.h Revert r110396 to fix buildbots. 2010-08-06 00:23:35 +00:00
MachineMemOperand.h Add non-temporal flags to MachineMemOperand. 2010-02-15 16:48:31 +00:00
MachineModuleInfo.h Revert r108369, sorting llvm.dbg.declare information by source position, 2010-07-16 17:54:27 +00:00
MachineModuleInfoImpls.h Add a bit along with the MCSymbols stored in the MachineModuleInfo maps that 2010-03-10 22:34:10 +00:00
MachineOperand.h Add a TargetRegisterInfo::composeSubRegIndices hook with a default 2010-05-28 18:18:53 +00:00
MachinePassRegistry.h Sundry dependent-name fixes flagged by clang++. 2009-12-17 23:49:16 +00:00
MachineRegisterInfo.h Begin implementation of an inline spiller. 2010-06-29 23:58:39 +00:00
MachineRelocation.h Disable external stubs for X86-32 and X86-64 2010-02-04 19:56:59 +00:00
MachineSSAUpdater.h Combine the implementations of the core part of the SSAUpdater and 2010-05-04 23:18:19 +00:00
MachORelocation.h Make a few more LLVM headers parsable as standalone headers. 2009-11-05 23:01:30 +00:00
ObjectCodeEmitter.h change EH related stuff (other than EH_LABEL) to use MCSymbol 2010-03-14 01:41:15 +00:00
Passes.h Add the Optimize Compares pass (disabled by default). 2010-08-06 01:32:48 +00:00
PostRAHazardRecognizer.h Add missing include to unbreak the build. 2010-06-14 22:44:26 +00:00
ProcessImplicitDefs.h Revert r110396 to fix buildbots. 2010-08-06 00:23:35 +00:00
PseudoSourceValue.h Make PseudoSourceValue's classof recognize 2009-11-16 20:40:06 +00:00
RegAllocRegistry.h Reformat. 2009-07-08 21:57:46 +00:00
RegisterCoalescer.h Be more forgiving when calculating alias interference for physreg coalescing. 2010-07-06 20:31:51 +00:00
RegisterScavenging.h After r107880, findSurvivorReg() no longer needs to be public. 2010-07-08 17:27:23 +00:00
RuntimeLibcalls.h back-end libcall handling for ATOMIC_SWAP (__sync_lock_test_and_set) 2010-06-18 23:03:10 +00:00
ScheduleDAG.h Change push_all to a non-virtual function and implement it in the 2010-05-26 01:10:55 +00:00
ScheduleHazardRecognizer.h Post RA scheduler changes. Introduce a hazard recognizer that uses the target schedule information to accurately model the pipeline. Update the scheduler to correctly handle multi-issue targets. 2009-08-10 15:55:25 +00:00
SchedulerRegistry.h Add an ILP scheduler. This is a register pressure aware scheduler that's 2010-07-24 00:39:05 +00:00
SelectionDAG.h Fix va_arg for doubles. With this patch VAARG nodes always contain the 2010-07-11 04:01:49 +00:00
SelectionDAGISel.h Reapply bottom-up fast-isel, with several fixes for x86-32: 2010-07-10 09:00:22 +00:00
SelectionDAGNodes.h Move ArgFlagsTy, OutputArg, and InputArg out of SelectionDAGNodes.h and 2010-07-07 15:28:42 +00:00
SlotIndexes.h Revert r110396 to fix buildbots. 2010-08-06 00:23:35 +00:00
TargetLoweringObjectFileImpl.h More data/parsing support for tls directives. Add a few more testcases 2010-05-17 22:53:55 +00:00
ValueTypes.h Fix enum to address array bounds regression. 2010-05-18 21:22:12 +00:00
ValueTypes.td Adding a v8i64 512-bit vector type. This will be used to model ARM NEON intrinsics which translate into a pair of vld / vst instructions that can load / store 8 consecutive 64-bit (D) registers. 2010-05-13 23:55:47 +00:00