| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
llvm-svn: 79068
|
| |
|
|
| |
llvm-svn: 79044
|
| |
|
|
|
|
|
|
|
|
| |
libcall. Take advantage of this in the ARM backend to rectify broken
choice of CC when hard float is in effect. PIC16 may want to see if
it could be of use in MakePIC16Libcall, which works unchanged.
Patch by Sandeep!
llvm-svn: 79033
|
| |
|
|
|
|
| |
elf object file.
llvm-svn: 79029
|
| |
|
|
|
|
| |
to print one instruction.
llvm-svn: 78985
|
| |
|
|
| |
llvm-svn: 78978
|
| |
|
|
|
|
| |
AsmPrinter instance (instead of just a FunctionPass)
llvm-svn: 78962
|
| |
|
|
| |
llvm-svn: 78955
|
| |
|
|
| |
llvm-svn: 78948
|
| |
|
|
|
|
|
| |
Use MCSectionELF methods as much as possible, removing some
ELFWriter methods which are now unused
llvm-svn: 78940
|
| |
|
|
|
|
|
|
|
| |
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
|
| |
|
|
| |
llvm-svn: 78913
|
| |
|
|
|
|
| |
So far these registers are simply tracked as if they were live-in.
llvm-svn: 78912
|
| |
|
|
| |
llvm-svn: 78911
|
| |
|
|
| |
llvm-svn: 78910
|
| |
|
|
|
|
|
| |
syntactically as a string, very similiar to what Chris did with MachO.
The parsing support and validation is not introduced yet.
llvm-svn: 78890
|
| |
|
|
|
|
| |
PrintUnmangledNameSafely.
llvm-svn: 78878
|
| |
|
|
| |
llvm-svn: 78843
|
| |
|
|
| |
llvm-svn: 78840
|
| |
|
|
| |
llvm-svn: 78838
|
| |
|
|
|
|
|
| |
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
|
| |
|
|
|
|
| |
that emitted unnecessary whitespace outside of VerboseAsm mode.
llvm-svn: 78828
|
| |
|
|
|
|
| |
with overlapping stages. The default is to maintain the current behavior that the "next" stage immediately follows the previous one.
llvm-svn: 78827
|
| |
|
|
| |
llvm-svn: 78817
|
| |
|
|
|
|
|
|
| |
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
|
| |
|
|
| |
llvm-svn: 78773
|
| |
|
|
|
|
| |
in breaking an anti-dependence into a separate function.
llvm-svn: 78767
|
| |
|
|
|
|
| |
infrastructure work needed to get the contexts to where they need to be first.
llvm-svn: 78759
|
| |
|
|
|
|
|
|
|
|
| |
"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
|
| |
|
|
|
|
| |
counter.
llvm-svn: 78736
|
| |
|
|
| |
llvm-svn: 78725
|
| |
|
|
|
|
|
|
| |
while
the latter is capable of representing either a primitive or an extended type.
llvm-svn: 78713
|
| |
|
|
|
|
| |
the code based on this and make it fall through better.
llvm-svn: 78708
|
| |
|
|
| |
llvm-svn: 78694
|
| |
|
|
| |
llvm-svn: 78687
|
| |
|
|
| |
llvm-svn: 78677
|
| |
|
|
| |
llvm-svn: 78667
|
| |
|
|
| |
llvm-svn: 78664
|
| |
|
|
| |
llvm-svn: 78663
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
| |
- Since the function is never called in NDEBUG mode, just dropped the DEBUG()
uses here.
llvm-svn: 78649
|
| |
|
|
| |
llvm-svn: 78634
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
| |
register interval, or the defining register for a stack interval. Access is via getCopy/setCopy and getReg/setReg.
llvm-svn: 78620
|
| |
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
| |
node after legalize, and remove the workaround code from the
ARM backend.
llvm-svn: 78615
|
| |
|
|
|
|
| |
own struct type.
llvm-svn: 78610
|
| |
|
|
| |
llvm-svn: 78601
|
| |
|
|
|
|
| |
SimpleValueType, which will simplify the privatization of IntegerType in the future.
llvm-svn: 78584
|
| |
|
|
| |
llvm-svn: 78569
|