| Commit message (Collapse) | Author | Age | Files | Lines | 
| ... |  | 
| | 
| 
| 
| 
| 
|  | 
blocks and update CFG, it should also inform sdisel of the changes so the phi source operands will come from the right basic blocks.
llvm-svn: 82311
 | 
| | 
| 
| 
| 
| 
| 
| 
|  | 
sdisel will use to properly complete phi nodes.
Not functionality change yet.
llvm-svn: 82273
 | 
| | 
| 
| 
| 
| 
| 
|  | 
move a SUBFC (etc.) below the SUBFE (etc.) that consumed
the carry bit.  Add missing ADDIC8, noticed along the way.
llvm-svn: 82266
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
Eliminate the PersonalityPrefix/Suffix & NeedsIndirectEncoding
fields from MAI: they aren't part of the asm syntax, they are
related to the structure of the object file.
To replace their functionality, add a new 
TLOF::getSymbolForDwarfGlobalReference method which asks targets
to decide how to reference a global from EH in a pc-relative way.
The default implementation just returns the symbol.  The default
darwin implementation references the symbol through an indirect
$non_lazy_ptr stub.  The bizarro x86-64 darwin specialization
handles the weird "foo@GOTPCREL+4" hack.
DwarfException.cpp now uses this to emit the reference to the
symbol in the right way, and this also eliminates another 
horrible hack from DwarfException.cpp:
-    if (strcmp(MAI->getPersonalitySuffix(), "+4@GOTPCREL"))
-      O << "-" << MAI->getPCSymbol();
llvm-svn: 81991
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
and use PersonalityPrefix/Suffix to achieve the same effect (like
the x86 backend).
This changes the code generated for ppc static mode, but guess what,
we were generating this before:
	.byte	0x9B                                        ; Personality (indirect pcrel sdata4)
	.long	___gxx_personality_v0-.                     ; Personality
which is not correct! (it is not an 'indirect' reference).
 
llvm-svn: 81965
 | 
| | 
| 
| 
|  | 
llvm-svn: 81714
 | 
| | 
| 
| 
| 
| 
|  | 
the object, make it static instead of const.
llvm-svn: 81711
 | 
| | 
| 
| 
| 
| 
|  | 
Nothing is using this info yet.
llvm-svn: 81707
 | 
| | 
| 
| 
| 
| 
| 
|  | 
now that printBasicBlockLabel is only used for starting
a MBB.  This allows elimination of a bunch of arguments.
llvm-svn: 81684
 | 
| | 
| 
| 
| 
| 
|  | 
instead.
llvm-svn: 81677
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
the MCInst path of the asmprinter.  Instead, pull comment printing
out of the autogenerated asmprinter into each target that uses the
autogenerated asmprinter.  This causes code duplication into each
target, but in a way that will be easier to clean up later when more
asmprinter stuff is commonized into the base AsmPrinter class.
This also fixes an xcore strangeness where it inserted two tabs
before every instruction.
llvm-svn: 81396
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
asm printer into the "printInstruction" routine.  This
fixes a problem where the experimental asmprinter would
drop debug labels in some cases, and fixes issues on ppc/xcore
where pseudo instructions like "mr" didn't get debug locs properly.
It is annoying that this moves the call from one place into each
target, but a future set of more invasive refactorings will fix
that problem.
llvm-svn: 81377
 | 
| | 
| 
| 
| 
| 
|  | 
about by icc (#593, partial).  Patch by Erick Tryzelaar.
llvm-svn: 81115
 | 
| | 
| 
| 
|  | 
llvm-svn: 80773
 | 
| | 
| 
| 
| 
| 
|  | 
handling on x86-32 linux.
llvm-svn: 80592
 | 
| | 
| 
| 
|  | 
llvm-svn: 80584
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
|  | 
encodings.
- Make some of the values emitted by the FDEs dependent upon the pointer
  size. This is in line with how GCC does things. And it has the benefit of
  working for Darwin in 64-bit mode now.
llvm-svn: 80428
 | 
| | 
| 
| 
|  | 
llvm-svn: 80119
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
|  | 
all Darwin targets; could be split into separate tests for
the chip subdirectories, but from Chris' last mail on testing
I assume he'd rather have only one test.  Generic seems to be
the best available, maybe there should be a Darwin subdirectory?
llvm-svn: 79877
 | 
| | 
| 
| 
|  | 
llvm-svn: 79833
 | 
| | 
| 
| 
| 
| 
|  | 
update all code that this affects.
llvm-svn: 79830
 | 
| | 
| 
| 
| 
| 
| 
| 
|  | 
MachineInstr and MachineOperand.  This required eliminating a
bunch of stuff that was using DOUT, I hope that bill doesn't
mind me stealing his fun. ;-)
llvm-svn: 79813
 | 
| | 
| 
| 
|  | 
llvm-svn: 79780
 | 
| | 
| 
| 
|  | 
llvm-svn: 79777
 | 
| | 
| 
| 
|  | 
llvm-svn: 79773
 | 
| | 
| 
| 
|  | 
llvm-svn: 79763
 | 
| | 
| 
| 
|  | 
llvm-svn: 79742
 | 
| | 
| 
| 
| 
| 
|  | 
talk to the MCStreamer directly instead.
llvm-svn: 79405
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
|  | 
- Drop the Candidates argument and fix all callers. Now that RegScavenger
  tracks available registers accurately, there is no need to restict the
  search.
- Make sure that no aliases of the found register are in use. This was a potential bug.
llvm-svn: 79369
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
|  | 
for a single "m" constraint; this is wrong because the
opcode of a load or store would have to change in parallel.
This patch makes it always compute addresses into a register,
which is correct but not as efficient as possible.  7144566.
llvm-svn: 79292
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
The Link Register is volatile when using the 32-bit SVR4 ABI.
Make it possible to use the 64-bit SVR4 ABI.
Add non-volatile registers for the 64-bit SVR4 ABI.
Make sure r2 is a reserved register when using the 64-bit SVR4 ABI.
Update PPCFrameInfo for the 64-bit SVR4 ABI.
Add FIXME for 64-bit Darwin PPC.
Insert NOP instruction after direct function calls.
Emit official procedure descriptors.
Create TOC entries for GlobalAddress references.
Spill 64-bit non-volatile registers to the correct slots.
Only custom lower VAARG when using the 32-bit SVR4 ABI.
Use simple VASTART lowering for the 64-bit SVR4 ABI.
llvm-svn: 79091
 | 
| | 
| 
| 
| 
| 
|  | 
"the current basic block".
llvm-svn: 79069
 | 
| | 
| 
| 
| 
| 
|  | 
AsmPrinter instance (instead of just a FunctionPass)
llvm-svn: 78962
 | 
| | 
| 
| 
| 
| 
|  | 
must be emitted for PowerPC-Linux '.bss' section
llvm-svn: 78958
 | 
| | 
| 
| 
|  | 
llvm-svn: 78948
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
|  | 
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
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
x86_64-apple-darwin10.
--- Reverse-merging r78895 into '.':
U    test/CodeGen/PowerPC/2008-12-12-EH.ll
U    lib/Target/DarwinTargetAsmInfo.cpp
--- Reverse-merging r78892 into '.':
U    include/llvm/Target/DarwinTargetAsmInfo.h
U    lib/Target/X86/X86TargetAsmInfo.cpp
U    lib/Target/X86/X86TargetAsmInfo.h
U    lib/Target/ARM/ARMTargetAsmInfo.h
U    lib/Target/ARM/ARMTargetMachine.cpp
U    lib/Target/ARM/ARMTargetAsmInfo.cpp
U    lib/Target/PowerPC/PPCTargetAsmInfo.cpp
U    lib/Target/PowerPC/PPCTargetAsmInfo.h
U    lib/Target/PowerPC/PPCTargetMachine.cpp
G    lib/Target/DarwinTargetAsmInfo.cpp
llvm-svn: 78919
 | 
| | 
| 
| 
| 
| 
|  | 
don't need to be exported from the .o files.
llvm-svn: 78892
 | 
| | 
| 
| 
| 
| 
|  | 
PrintUnmangledNameSafely.
llvm-svn: 78878
 | 
| | 
| 
| 
| 
| 
| 
| 
|  | 
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
 | 
| | 
| 
| 
| 
| 
|  | 
infrastructure work needed to get the contexts to where they need to be first.
llvm-svn: 78759
 | 
| | 
| 
| 
|  | 
llvm-svn: 78747
 | 
| | 
| 
| 
|  | 
llvm-svn: 78744
 | 
| | 
| 
| 
|  | 
llvm-svn: 78743
 | 
| | 
| 
| 
| 
| 
|  | 
and each callee knows that it returns.
llvm-svn: 78742
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
"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
 | 
| | 
| 
| 
| 
| 
|  | 
darwin/arm support for .no_dead_strip
llvm-svn: 78734
 | 
| | 
| 
| 
|  | 
llvm-svn: 78732
 | 
| | 
| 
| 
|  | 
llvm-svn: 78730
 | 
| | 
| 
| 
| 
| 
|  | 
template in PPC backend for TAI.
llvm-svn: 78727
 |