1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-23 04:52:54 +02:00
llvm-mirror/include/llvm/CodeGen
Dale Johannesen c08669561e Make the implicit inputs and outputs of target-independent
ADDC/ADDE use MVT::i1 (later, whatever it gets legalized to)
instead of MVT::Flag.  Remove CARRY_FALSE in favor of 0; adjust
all target-independent code to use this format.

Most targets will still produce a Flag-setting target-dependent
version when selection is done.  X86 is converted to use i32
instead, which means TableGen needs to produce different code
in xxxGenDAGISel.inc.  This keys off the new supportsHasI1 bit
in xxxInstrInfo, currently set only for X86; in principle this
is temporary and should go away when all other targets have
been converted.  All relevant X86 instruction patterns are
modified to represent setting and using EFLAGS explicitly.  The
same can be done on other targets.

The immediate behavior change is that an ADC/ADD pair are no
longer tightly coupled in the X86 scheduler; they can be
separated by instructions that don't clobber the flags (MOV).
I will soon add some peephole optimizations based on using
other instructions that set the flags to feed into ADC.

llvm-svn: 72707
2009-06-01 23:27:20 +00:00
..
AsmPrinter.h Move the tablegen-produced DebugLoc handling into a AsmWriter::processDebugLoc function. 2009-05-07 13:55:51 +00:00
BreakCriticalMachineEdge.h
CallingConvLower.h Clean up formatting, remove trailing whitespace, fix comment typos and 2009-04-17 20:35:10 +00:00
DAGISelHeader.h Generalize one of the SelectionDAG::ReplaceAllUsesWith overloads 2009-04-15 20:06:30 +00:00
DebugLoc.h Temporarily revert r72191. It was causing an assert during llvm-gcc 2009-05-21 00:04:55 +00:00
DwarfWriter.h Revert 71165. It did more than just revert 71158 and it introduced 2009-05-07 19:46:24 +00:00
ELFRelocation.h
FastISel.h Temporarily revert r72191. It was causing an assert during llvm-gcc 2009-05-21 00:04:55 +00:00
FileWriters.h
GCMetadata.h
GCMetadataPrinter.h
GCs.h
GCStrategy.h
IntrinsicLowering.h
JITCodeEmitter.h Use uint8_t and int32_t in {JIT,Machine}CodeEmiters 2009-05-30 23:50:33 +00:00
LatencyPriorityQueue.h
LinkAllAsmWriterComponents.h
LinkAllCodegenComponents.h Instead of passing in an unsigned value for the optimization level, use an enum, 2009-04-29 23:29:43 +00:00
LiveInterval.h Do not share a single unknown val# for all the live ranges merged into a physical sub-register live interval. When coalescer is merging in clobbered virtaul register live interval into a physical register live interval, give each virtual register val# a separate val# in the physical register live interval. Otherwise, the coalescer would have lost track of the definitions information it needs to make correct coalescing decisions. 2009-04-25 09:25:19 +00:00
LiveIntervalAnalysis.h In some rare cases, the register allocator can spill registers but end up not utilizing registers at all. The fundamental problem is linearscan's backtracking can end up freeing more than one allocated registers. However, reloads and restores might be folded into uses / defs and freed registers might not be used at all. 2009-05-03 18:32:42 +00:00
LiveStackAnalysis.h In some rare cases, the register allocator can spill registers but end up not utilizing registers at all. The fundamental problem is linearscan's backtracking can end up freeing more than one allocated registers. However, reloads and restores might be folded into uses / defs and freed registers might not be used at all. 2009-05-03 18:32:42 +00:00
LiveVariables.h LiveVariables::VarInfo contains an AliveBlocks BitVector, which has as many 2009-05-26 18:27:15 +00:00
MachineBasicBlock.h Reapply 68073, with fixes. EH Landing-pad basic blocks are not 2009-03-31 18:39:13 +00:00
MachineCodeEmitter.h Use uint8_t and int32_t in {JIT,Machine}CodeEmiters 2009-05-30 23:50:33 +00:00
MachineCodeInfo.h Add missing file. 2009-05-18 21:08:45 +00:00
MachineConstantPool.h Use CHAR_BIT instead of hard-coding 8 in several places where it 2009-04-01 18:45:54 +00:00
MachineDominators.h
MachineFrameInfo.h Fix a bunch of Doxygen syntax issues. Escape special characters, 2009-03-03 02:55:14 +00:00
MachineFunction.h Temporarily revert r72191. It was causing an assert during llvm-gcc 2009-05-21 00:04:55 +00:00
MachineFunctionPass.h Add a new "available_externally" linkage type. This is intended 2009-04-13 05:44:34 +00:00
MachineInstr.h MachineInstr::isRegTiedTo{Use,Def}Operand can safely be made const. 2009-04-29 20:57:16 +00:00
MachineInstrBuilder.h Change MachineInstrBuilder::addReg() to take a flag instead of a list of 2009-05-13 21:33:08 +00:00
MachineJumpTableInfo.h Move MachineJumpTableInfo::ReplaceMBBInJumpTables out of line. 2009-04-15 01:18:49 +00:00
MachineLocation.h
MachineLoopInfo.h Eliminate several more unnecessary intptr_t casts. 2009-02-18 05:09:16 +00:00
MachineMemOperand.h
MachineModuleInfo.h Remove an, apparently, leftover MachineModuleInfo::RecordSourceLine declaration. 2009-05-03 22:11:08 +00:00
MachineOperand.h Give RemoveRegOperandFromRegInfo a comment and move the 2009-04-15 01:17:37 +00:00
MachinePassRegistry.h
MachineRegisterInfo.h Move MachineRegisterInfo::setRegClass out of line. 2009-04-15 01:19:35 +00:00
MachineRelocation.h
MachORelocation.h
Passes.h Add a new codegen pass that normalizes dwarf exception handling 2009-05-22 20:36:31 +00:00
PseudoSourceValue.h
RegAllocRegistry.h
RegisterCoalescer.h Fix a bunch of Doxygen syntax issues. Escape special characters, 2009-03-03 02:55:14 +00:00
RegisterScavenging.h Don't pass BitVectors by value, pass them by reference. 2009-02-06 09:16:15 +00:00
RuntimeLibcalls.h Add a new codegen pass that normalizes dwarf exception handling 2009-05-22 20:36:31 +00:00
ScheduleDAG.h Add a new bit to SUnit to record whether a node has implicit physreg 2009-03-23 16:10:52 +00:00
ScheduleHazardRecognizer.h
SchedulerRegistry.h Instead of passing in an unsigned value for the optimization level, use an enum, 2009-04-29 23:29:43 +00:00
SelectionDAG.h Make the implicit inputs and outputs of target-independent 2009-06-01 23:27:20 +00:00
SelectionDAGISel.h Factor out cycle-finder code and make it generic. 2009-05-08 18:51:58 +00:00
SelectionDAGNodes.h Make the implicit inputs and outputs of target-independent 2009-06-01 23:27:20 +00:00
ValueTypes.h Remove the SimpleTy enumerated type field from the MVT 2009-04-19 06:23:05 +00:00
ValueTypes.td