| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
| |
Note that "hasDotLocAndDotFile"-style debug info was already broken;
people wanting this functionality should implement it in the
AsmPrinter/DwarfWriter code.
llvm-svn: 89711
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
MachineRelocations, "stub" always refers to a far-call stub or a
load-a-faraway-global stub, so this patch adds "Far" to the term. (Other stubs
are used for lazy compilation and dlsym address replacement.) The variable was
also inconsistent between the positive and negative sense, and the positive
sense ("NeedStub") was more demanding than is accurate (since a nearby-enough
function can be called directly even if the platform often requires a stub).
Since the negative sense causes double-negatives, I switched to
"MayNeedFarStub" globally.
llvm-svn: 86363
|
| |
|
|
| |
llvm-svn: 85806
|
| |
|
|
|
|
| |
VISIBILITY_HIDDEN removal.
llvm-svn: 85043
|
| |
|
|
|
|
|
| |
Chris claims we should never have visibility_hidden inside any .cpp file but
that's still not true even after this commit.
llvm-svn: 85042
|
| |
|
|
|
|
| |
and after printing an instruction.
llvm-svn: 83363
|
| |
|
|
|
|
|
|
| |
the new predicates I added) instead of going through a context and doing a
pointer comparison. Besides being cheaper, this allows a smart compiler
to turn the if sequence into a switch.
llvm-svn: 83297
|
| |
|
|
| |
llvm-svn: 83192
|
| |
|
|
|
|
|
|
|
|
| |
unused DECLARE instruction.
KILL is not yet used anywhere, it will replace TargetInstrInfo::IMPLICIT_DEF
in the places where IMPLICIT_DEF is just used to alter liveness of physical
registers.
llvm-svn: 83006
|
| |
|
|
|
|
|
|
|
| |
instruction. This makes it re-materializable.
Thumb2 will split it back out into two instructions so IT pass will generate the
right mask. Also, this expose opportunies to optimize the movw to a 16-bit move.
llvm-svn: 82982
|
| |
|
|
|
|
| |
assert if the setModuleInfo hasn't been called.
llvm-svn: 82441
|
| |
|
|
| |
llvm-svn: 81422
|
| |
|
|
| |
llvm-svn: 81403
|
| |
|
|
|
|
| |
bunch of nasty code in ARM asm printer.
llvm-svn: 80404
|
| |
|
|
| |
llvm-svn: 79833
|
| |
|
|
|
|
|
|
| |
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: 79742
|
| |
|
|
| |
llvm-svn: 78948
|
| |
|
|
| |
llvm-svn: 78666
|
| |
|
|
|
|
| |
like "LLVM ERROR: llvm: error:" or "LLVM ERROR: ERROR:".
llvm-svn: 77971
|
| |
|
|
|
|
|
|
|
|
| |
- Some clients which used DOUT have moved to DEBUG. We are deprecating the
"magic" DOUT behavior which avoided calling printing functions when the
statement was disabled. In addition to being unnecessary magic, it had the
downside of leaving code in -Asserts builds, and of hiding potentially
unnecessary computations.
llvm-svn: 77019
|
| |
|
|
| |
llvm-svn: 77018
|
| |
|
|
| |
llvm-svn: 76725
|
| |
|
|
|
|
|
| |
the X86 Emitter. This patch extends that to the rest of the targets that can
write to a MachineCodeEmitter: ARM, Alpha, and PPC.
llvm-svn: 76211
|
| |
|
|
|
|
|
|
|
| |
This adds location info for all llvm_unreachable calls (which is a macro now) in
!NDEBUG builds.
In NDEBUG builds location info and the message is off (it only prints
"UREACHABLE executed").
llvm-svn: 75640
|
| |
|
|
| |
llvm-svn: 75416
|
| |
|
|
|
|
| |
the immediates are no longer encoded in the imm8 + rot format, that are left as it is. The encoding is now done in ams printing and code emission time instead.
llvm-svn: 75048
|
| |
|
|
|
|
| |
Finish converting lib/Target.
llvm-svn: 75043
|
| |
|
|
|
|
|
| |
cerr+abort -> llvm_report_error
assert(0)+abort -> LLVM_UNREACHABLE (assert(0)+llvm_unreachable-> abort() included)
llvm-svn: 75018
|
| |
|
|
| |
llvm-svn: 74976
|
| |
|
|
|
|
| |
instructions. Patch by Sean Callanan.
llvm-svn: 74972
|
| |
|
|
| |
llvm-svn: 74868
|
| |
|
|
|
|
| |
cleanup, removed some #includes and moved Object Code Emitter out-of-line.
llvm-svn: 74813
|
| |
|
|
| |
llvm-svn: 74549
|
| |
|
|
|
|
| |
Step 1: ARMInstructionInfo => {ARM,Thumb}InstructionInfo
llvm-svn: 74329
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Change register allocation hint to a pair of unsigned integers. The hint type is zero (which means prefer the register specified as second part of the pair) or entirely target dependent.
- Allow targets to specify alternative register allocation orders based on allocation hint.
Part 2.
- Use the register allocation hint system to implement more aggressive load / store multiple formation.
- Aggressively form LDRD / STRD. These are formed *before* register allocation. It has to be done this way to shorten live interval of base and offset registers. e.g.
v1025 = LDR v1024, 0
v1026 = LDR v1024, 0
=>
v1025,v1026 = LDRD v1024, 0
If this transformation isn't done before allocation, v1024 will overlap v1025 which means it more difficult to allocate a register pair.
- Even with the register allocation hint, it may not be possible to get the desired allocation. In that case, the post-allocation load / store multiple pass must fix the ldrd / strd instructions. They can either become ldm / stm instructions or back to a pair of ldr / str instructions.
This is work in progress, not yet enabled.
llvm-svn: 73381
|
| |
|
|
| |
llvm-svn: 72697
|
| |
|
|
|
|
| |
JITCodeEmitter and ObjectCodeEmitter. No functional changes yet. Patch by Aaron Gray
llvm-svn: 72631
|
| |
|
|
|
|
| |
some overflow issues. Patch by Thomas Jablin.
llvm-svn: 60828
|
| |
|
|
| |
llvm-svn: 59696
|
| |
|
|
| |
llvm-svn: 59678
|
| |
|
|
| |
llvm-svn: 59314
|
| |
|
|
| |
llvm-svn: 59275
|
| |
|
|
| |
llvm-svn: 59258
|
| |
|
|
| |
llvm-svn: 59231
|
| |
|
|
| |
llvm-svn: 59230
|
| |
|
|
| |
llvm-svn: 59117
|
| |
|
|
| |
llvm-svn: 59116
|
| |
|
|
| |
llvm-svn: 59109
|
| |
|
|
| |
llvm-svn: 59107
|