1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-25 20:23:11 +01:00
llvm-mirror/include/llvm/CodeGen
Bob Wilson 2fd80c3d94 Add a new pass on machine instructions to optimize away PHI cycles that
reduce down to a single value.  InstCombine already does this transformation
but DAG legalization may introduce new opportunities.  This has turned out to
be important for ARM where 64-bit values are split up during type legalization:
InstCombine is not able to remove the PHI cycles on the 64-bit values but
the separate 32-bit values can be optimized.  I measured the compile time 
impact of this (running llc on 176.gcc) and it was not significant.

llvm-svn: 95951
2010-02-12 01:30:21 +00:00
..
AsmPrinter.h fix a layering violation: VirtRegRewriter.cpp shouldn't use AsmPrinter.h. 2010-02-10 01:23:18 +00:00
BinaryObject.h Make a few more LLVM headers parsable as standalone headers. 2009-11-05 23:01:30 +00:00
CalcSpillWeights.h Moved spill weight calculation out of SimpleRegisterCoalescing and into its own pass: CalculateSpillWeights. 2009-12-14 06:49:42 +00:00
CallingConvLower.h Add code to check at SelectionDAGISel::LowerArguments time to see if return values can be lowered to registers. Coming soon, code to perform sret-demotion if return values cannot be lowered to registers 2009-11-07 02:11:54 +00:00
DAGISelHeader.h Change SelectCode's argument from SDValue to SDNode *, to make it more 2010-01-05 01:24:18 +00:00
DwarfWriter.h constify a bunch of dwarf stuff now that the registerinfo method 2010-01-26 23:18:02 +00:00
ELFRelocation.h Move DataTypes.h to include/llvm/System, update all users. This breaks the last 2009-10-26 01:35:46 +00:00
FastISel.h Don't use the ISD::NodeType enum for SDNode opcodes, as CodeGen 2010-01-05 22:26:32 +00:00
GCMetadata.h Rename TargetAsmInfo (and its subclasses) to MCAsmInfo. 2009-08-22 20:48:53 +00:00
GCMetadataPrinter.h rename TAI -> MAI, being careful not to make MAILJMP instructions :) 2009-08-22 21:43:10 +00:00
GCs.h
GCStrategy.h
IntrinsicLowering.h
JITCodeEmitter.h Fix several comments which had previously been "the the" where a 2010-02-10 20:04:19 +00:00
LatencyPriorityQueue.h Remove some old experimental code that is no longer needed. Remove additional, speculative scheduling pass as its cost did not translate into significant performance improvement. Minor tweaks. 2009-11-20 19:32:48 +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 '-disable-scheduling' flag and replace it with the 'source' option of 2010-01-23 10:26:57 +00:00
LiveInterval.h Fix several comments which had previously been "the the" where a 2010-02-10 20:04:19 +00:00
LiveIntervalAnalysis.h Also attempt trivial coalescing for live intervals that end in a copy. 2009-12-10 17:48:32 +00:00
LiveStackAnalysis.h The Indexes Patch. 2009-11-03 23:52:08 +00:00
LiveVariables.h Move PHIElimination::isLiveOut method to LiveVariables. 2009-12-01 17:13:31 +00:00
MachineBasicBlock.h Stop MachineInstr.h from #including AsmPrinter.h 2010-02-10 01:04:16 +00:00
MachineCodeEmitter.h Fix several comments which had previously been "the the" where a 2010-02-10 20:04:19 +00:00
MachineCodeInfo.h Make a few more LLVM headers parsable as standalone headers. 2009-11-05 23:01:30 +00:00
MachineConstantPool.h Fix "the the" and similar typos. 2010-02-10 16:03:48 +00:00
MachineDominators.h Add a WriteAsOperand for MachineBasicBlock so MachineLoopInfo dump looks sane. 2009-11-17 19:19:59 +00:00
MachineFrameInfo.h Factor the stack alignment calculations out into a target independent pass. 2009-12-02 19:30:24 +00:00
MachineFunction.h Fix "the the" and similar typos. 2010-02-10 16:03:48 +00:00
MachineFunctionAnalysis.h make MachineFunction keep track of its ID and make 2010-01-26 04:35:26 +00:00
MachineFunctionPass.h Remove an unnecessary include. Now we won't have circular include 2009-08-19 23:00:07 +00:00
MachineInstr.h Fix "the the" and similar typos. 2010-02-10 16:03:48 +00:00
MachineInstrBuilder.h Add a Debug bit to MachineOperand, for uses that 2010-02-06 02:28:32 +00:00
MachineJumpTableInfo.h Move getJTISymbol from MachineJumpTableInfo to MachineFunction, 2010-01-26 06:28:43 +00:00
MachineLocation.h
MachineLoopInfo.h Restore dump() methods to Loop and MachineLoop. 2010-01-05 21:08:02 +00:00
MachineMemOperand.h Make a few more LLVM headers parsable as standalone headers. 2009-11-05 23:01:30 +00:00
MachineModuleInfo.h Update of 94055 to track the IR level call site information via an intrinsic. 2010-01-28 01:45:32 +00:00
MachineModuleInfoImpls.h make MachineModuleInfoMachO hold non-const MCSymbol*'s instead 2010-02-03 06:18:30 +00:00
MachineOperand.h Allow isDebug inquiry on any MO. 2010-02-10 23:03:20 +00:00
MachinePassRegistry.h Sundry dependent-name fixes flagged by clang++. 2009-12-17 23:49:16 +00:00
MachineRegisterInfo.h Add a Debug bit to MachineOperand, for uses that 2010-02-06 02:28:32 +00:00
MachineRelocation.h Disable external stubs for X86-32 and X86-64 2010-02-04 19:56:59 +00:00
MachineSSAUpdater.h Pre-regalloc tale duplication. Work in progress. 2009-12-07 10:15: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 Fix several comments which had previously been "the the" where a 2010-02-10 20:04:19 +00:00
Passes.h Add a new pass on machine instructions to optimize away PHI cycles that 2010-02-12 01:30:21 +00:00
ProcessImplicitDefs.h The Indexes Patch. 2009-11-03 23:52:08 +00:00
PseudoSourceValue.h Make PseudoSourceValue's classof recognize 2009-11-16 20:40:06 +00:00
RegAllocRegistry.h
RegisterCoalescer.h
RegisterScavenging.h Add register-reuse to frame-index register scavenging. When a target uses 2009-10-07 17:12:56 +00:00
RuntimeLibcalls.h Add 8 bit libcalls and make use of them for msp430 2009-11-07 17:14:39 +00:00
ScheduleDAG.h Remove some old experimental code that is no longer needed. Remove additional, speculative scheduling pass as its cost did not translate into significant performance improvement. Minor tweaks. 2009-11-20 19:32:48 +00:00
ScheduleHazardRecognizer.h
SchedulerRegistry.h Remove the '-disable-scheduling' flag and replace it with the 'source' option of 2010-01-23 10:26:57 +00:00
SelectionDAG.h Assign the ordering of SDNodes in a much less intrusive fashion. After the 2010-01-28 21:51:40 +00:00
SelectionDAGISel.h Teach dag combine to fold the following transformation more aggressively: 2010-01-06 19:38:29 +00:00
SelectionDAGNodes.h When XDEBUG is enabled, check for SelectionDAG cycles at some key 2010-01-20 20:13:31 +00:00
SlotIndexes.h Changed the definition of an "invalid" slot to include the empty & tombstone values, but not zero. 2010-02-09 00:41:23 +00:00
ValueTypes.h Do an early exit when the result is known cheaply. 2010-02-01 20:57:35 +00:00
ValueTypes.td Move Flag and isVoid after the vector types, since bit arithmetic with 2009-12-14 23:36:03 +00:00