- Aug 13, 2009
-
-
Bruno Cardoso Lopes authored
Use MCSectionELF methods as much as possible, removing some ELFWriter methods which are now unused llvm-svn: 78940
-
Daniel Dunbar authored
TargetAsmInfo. This eliminates a dependency on TargetMachine.h from TargetRegistry.h, which technically was a layering violation. - Clients probably can only sensibly pass in the same TargetAsmInfo as the TargetMachine has, but there are only limited clients of this API. llvm-svn: 78928
-
Jakob Stoklund Olesen authored
llvm-svn: 78913
-
Jakob Stoklund Olesen authored
So far these registers are simply tracked as if they were live-in. llvm-svn: 78912
-
Jakob Stoklund Olesen authored
llvm-svn: 78911
-
David Goodwin authored
llvm-svn: 78910
-
Bruno Cardoso Lopes authored
syntactically as a string, very similiar to what Chris did with MachO. The parsing support and validation is not introduced yet. llvm-svn: 78890
-
Dan Gohman authored
PrintUnmangledNameSafely. llvm-svn: 78878
-
- Aug 12, 2009
-
-
David Goodwin authored
llvm-svn: 78843
-
Lang Hames authored
llvm-svn: 78840
-
Dan Gohman authored
llvm-svn: 78838
-
Dan Gohman authored
the basic block label printing to check whether a block has a name before printing a comment character and whitespace for it. llvm-svn: 78830
-
Dan Gohman authored
that emitted unnecessary whitespace outside of VerboseAsm mode. llvm-svn: 78828
-
David Goodwin authored
Enhance the InstrStage object to enable the specification of an Itinerary with overlapping stages. The default is to maintain the current behavior that the "next" stage immediately follows the previous one. llvm-svn: 78827
-
Jim Grosbach authored
llvm-svn: 78817
-
Chris Lattner authored
pair instead of from a virtual method on TargetMachine. This cuts the final ties of TargetAsmInfo to TargetMachine, meaning that MC can now use TargetAsmInfo. llvm-svn: 78802
-
Dan Gohman authored
llvm-svn: 78773
-
Dan Gohman authored
in breaking an anti-dependence into a separate function. llvm-svn: 78767
-
Owen Anderson authored
Add contexts to some of the MVT APIs. No functionality change yet, just the infrastructure work needed to get the contexts to where they need to be first. llvm-svn: 78759
-
Chris Lattner authored
"inlineasmstart/end" strings so that the contents of the directive are separate from the comment character. This lets elf targets get #APP/#NOAPP for free even if they don't use "#" as the comment character. This also allows hoisting the darwin stuff up to the shared TAI class. llvm-svn: 78737
-
David Goodwin authored
llvm-svn: 78736
-
- Aug 11, 2009
-
-
Owen Anderson authored
llvm-svn: 78725
-
Owen Anderson authored
the latter is capable of representing either a primitive or an extended type. llvm-svn: 78713
-
Chris Lattner authored
the code based on this and make it fall through better. llvm-svn: 78708
-
David Goodwin authored
llvm-svn: 78694
-
David Goodwin authored
llvm-svn: 78687
-
Dan Gohman authored
llvm-svn: 78677
-
Dan Gohman authored
llvm-svn: 78667
-
Dan Gohman authored
llvm-svn: 78664
-
Dan Gohman authored
llvm-svn: 78663
-
Jakob Stoklund Olesen authored
The register scavenger maintains a DistanceMap that maps MI pointers to their distance from the top of the current MBB. The DistanceMap is built incrementally in forward() and in bulk in findFirstUse(). It is used by scavengeRegister() to determine which candidate register has the longest unused interval. Unfortunately the DistanceMap contents can become outdated. The first time scavengeRegister() is called, the DistanceMap is filled to cover the MBB. If then instructions are inserted in the MBB (as they always are following scavengeRegister()), the recorded distances are too short. This causes bad behaviour in the included test case where a register use /after/ the current position is ignored because findFirstUse() thinks is is /before/ the current position. A "using an undefined register" assertion follows promptly. The fix is to build a fresh DistanceMap at the top of scavengeRegister(), and discard it after use. This means that DistanceMap is no longer needed as a RegScavenger member variable, and forward() doesn't need to update it. The fix then discloses issue number two in the same test case: The candidate search in scavengeRegister() finds a CSR that has been saved in the prologue, but is currently unused. It would be both inefficient and wrong to spill such a register in the emergency spill slot. In the present case, the emergency slot restore is placed immediately before the normal epilogue restore, leading to a "Redefining a live register" assertion. Fix number two: When scavengerRegister() stumbles upon an unused register that is overwritten later in the MBB, return that register early. It is important to verify that the register is defined later in the MBB, otherwise it might be an unspilled CSR. llvm-svn: 78650
-
Daniel Dunbar authored
- Since the function is never called in NDEBUG mode, just dropped the DEBUG() uses here. llvm-svn: 78649
-
David Goodwin authored
llvm-svn: 78634
-
Jim Grosbach authored
and short. Well, it's kinda short. Definitely nasty and brutish. The front-end generates the register/unregister calls into the SjLj runtime, call-site indices and landing pad dispatch. The back end fills in the LSDA with the call-site information provided by the front end. Catch blocks are not yet implemented. Built on Darwin and verified no llvm-core "make check" regressions. llvm-svn: 78625
-
Lang Hames authored
Modified VNInfo. The "copy" member is now a union which holds the copy for a register interval, or the defining register for a stack interval. Access is via getCopy/setCopy and getReg/setReg. llvm-svn: 78620
-
Dan Gohman authored
MERGE_VALUES nodes. Replacing the result values with the operands in one MERGE_VALUES node may cause another MERGE_VALUES node be CSE'd with the first one, and bring its uses along, so that the first one isn't dead, as this code expects. Fix this by iterating until the node is really dead. This fixes PR4699. llvm-svn: 78619
-
Dan Gohman authored
node after legalize, and remove the workaround code from the ARM backend. llvm-svn: 78615
-
Owen Anderson authored
llvm-svn: 78610
-
- Aug 10, 2009
-
-
Owen Anderson authored
llvm-svn: 78601
-
Owen Anderson authored
Start moving TargetLowering away from using full MVTs and towards SimpleValueType, which will simplify the privatization of IntegerType in the future. llvm-svn: 78584
-