| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
for non-function GV relocations that require function address stubs (e.g. Mac OS X in non-static mode).
llvm-svn: 45527
|
| |
|
|
| |
llvm-svn: 45493
|
| |
|
|
| |
llvm-svn: 45484
|
| |
|
|
|
|
| |
version. It's unclear why gcc would ever compile this...
llvm-svn: 45476
|
| |
|
|
|
|
|
|
|
|
| |
a header file from libcodegen. This violates a layering order: codegen
depends on target, not the other way around. The fix to this is to
split TII into two classes, TII and TargetInstrInfoImpl, which defines
stuff that depends on libcodegen. It is defined in libcodegen, where
the base is not.
llvm-svn: 45475
|
| |
|
|
|
|
| |
Machine-level API cleanup instigated by Chris.
llvm-svn: 45470
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
that "machine" classes are used to represent the current state of
the code being compiled. Given this expanded name, we can start
moving other stuff into it. For now, move the UsedPhysRegs and
LiveIn/LoveOuts vectors from MachineFunction into it.
Update all the clients to match.
This also reduces some needless #includes, such as MachineModuleInfo
from MachineFunction.
llvm-svn: 45467
|
| |
|
|
|
|
|
|
|
|
|
|
| |
e.g. MO.isMBB() instead of MO.isMachineBasicBlock(). I don't plan on
switching everything over, so new clients should just start using the
shorter names.
Remove old long accessors, switching everything over to use the short
accessor: getMachineBasicBlock() -> getMBB(),
getConstantPoolIndex() -> getIndex(), setMachineBasicBlock -> setMBB(), etc.
llvm-svn: 45464
|
| |
|
|
|
|
|
|
|
|
| |
- Eliminate the static "print" method for operands, moving it
into MachineOperand::print.
- Change various set* methods for register flags to take a bool
for the value to set it to. Remove unset* methods.
- Group methods more logically by operand flavor in MachineOperand.h
llvm-svn: 45461
|
| |
|
|
|
|
| |
Likewise setImmedValue -> setImm
llvm-svn: 45453
|
| |
|
|
| |
llvm-svn: 45418
|
| |
|
|
| |
llvm-svn: 45415
|
| |
|
|
| |
llvm-svn: 45282
|
| |
|
|
| |
llvm-svn: 45281
|
| |
|
|
|
|
|
|
|
|
|
|
| |
are a couple of issues that show up with the optimizer,
but I don't think they're really EH problems.
(llvm-gcc testsuite users note: By default the testsuite
uses the unwinding code that's built as part of your local
llvm-gcc, which does not work. You need to trick it into
using the installed system unwinding code to get useful
results.)
llvm-svn: 45221
|
| |
|
|
| |
llvm-svn: 45190
|
| |
|
|
|
|
| |
re-materializable and they should not be spilled.
llvm-svn: 44960
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
a while ago. We now produce:
_foo:
mflr r0
std r0, 16(r1)
ld r2, 16(r1)
std r2, 0(r3)
ld r0, 16(r1)
mtlr r0
blr
instead of:
_foo:
mflr r0
std r0, 16(r1)
lis r0, 0
ori r0, r0, 16
ldx r2, r1, r0
std r2, 0(r3)
ld r0, 16(r1)
mtlr r0
blr
for:
void foo(void **X) {
*X = __builtin_return_address(0);
}
on ppc64.
llvm-svn: 44701
|
| |
|
|
| |
llvm-svn: 44700
|
| |
|
|
|
|
|
| |
different places to mean different things. Document what the
one in PPCFunctionInfo means and when it is valid.
llvm-svn: 44699
|
| |
|
|
| |
llvm-svn: 44691
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
_foo:
li r2, 0
LBB1_1: ; bb
li r5, 0
stw r5, 0(r3)
addi r2, r2, 1
addi r3, r3, 4
cmplw cr0, r2, r4
bne cr0, LBB1_1 ; bb
LBB1_2: ; return
blr
to:
_foo:
li r2, 0
li r5, 0
LBB1_1: ; bb
stw r5, 0(r3)
addi r2, r2, 1
addi r3, r3, 4
cmplw cr0, r2, r4
bne cr0, LBB1_1 ; bb
LBB1_2: ; return
blr
ZOMG!! :-)
Moar to come...
llvm-svn: 44687
|
| |
|
|
| |
llvm-svn: 44623
|
| |
|
|
|
|
| |
the stored register is killed.
llvm-svn: 44600
|
| |
|
|
| |
llvm-svn: 44517
|
| |
|
|
|
|
| |
-> cmpl [mem], 0.
llvm-svn: 44479
|
| |
|
|
|
|
|
| |
CodeGen/Generic/fp_to_int.ll among others. Its unclear why this
just started failing...
llvm-svn: 44407
|
| |
|
|
| |
llvm-svn: 44378
|
| |
|
|
|
|
| |
for Darwin PPC, but it's not fully working yet.
llvm-svn: 44258
|
| |
|
|
| |
llvm-svn: 44240
|
| |
|
|
| |
llvm-svn: 44057
|
| |
|
|
|
|
|
|
| |
to use different mappings for EH and debug info;
no functional change yet.
Fix warning in X86CodeEmitter.
llvm-svn: 44056
|
| |
|
|
| |
llvm-svn: 44045
|
| |
|
|
|
|
|
|
|
|
|
| |
adjustment fields, and an optional flag. If there is a "dynamic_stackalloc" in
the code, make sure that it's bracketed by CALLSEQ_START and CALLSEQ_END. If
not, then there is the potential for the stack to be changed while the stack's
being used by another instruction (like a call).
This can only result in tears...
llvm-svn: 44037
|
| |
|
|
|
|
|
|
| |
should fix
some regressions on ppc nightly tests.
llvm-svn: 44029
|
| |
|
|
|
|
| |
Target maintainers: please check that the instructions for your target are correctly marked.
llvm-svn: 44012
|
| |
|
|
|
|
|
|
| |
This makes DwarfRegNum to accept list of numbers instead.
Added three different "flavours", but only slightly tested on x86-32/linux.
Please check another subtargets if possible,
llvm-svn: 43997
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
should only effect x86 when using long double. Now
12/16 bytes are output for long double globals (the
exact amount depends on the alignment). This brings
globals in line with the rest of LLVM: the space
reserved for an object is now always the ABI size.
One tricky point is that only 10 bytes should be
output for long double if it is a field in a packed
struct, which is the reason for the additional
argument to EmitGlobalConstant.
llvm-svn: 43688
|
| |
|
|
| |
llvm-svn: 43676
|
| |
|
|
| |
llvm-svn: 43267
|
| |
|
|
|
|
| |
right callee-saved defs set for ppc64.
llvm-svn: 43248
|
| |
|
|
|
|
| |
selecting 32-bit call instruction for ppc64.
llvm-svn: 43228
|
| |
|
|
| |
llvm-svn: 43168
|
| |
|
|
| |
llvm-svn: 43160
|
| |
|
|
|
|
|
|
| |
only returns the opcode of the instruction post unfolding.
- Fix some copy+paste bugs.
llvm-svn: 43153
|
| |
|
|
|
|
| |
public interface.
llvm-svn: 43150
|
| |
|
|
|
|
| |
doesn't fit into 16 bits.
llvm-svn: 43032
|
| |
|
|
|
|
|
|
|
|
| |
unconditionally creating an i64 bitcast. With the future legalizer
design, operation legalization can't introduce new nodes with illegal
types.
This fixes the rest of olden on ppc32.
llvm-svn: 43005
|
| |
|
|
| |
llvm-svn: 42960
|
| |
|
|
|
|
| |
a problem when asserts are on). From vecLib.
llvm-svn: 42959
|