| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
| |
code emitter
after itself.
llvm-svn: 22376
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
XMM registers. There are many known deficiencies and fixmes, which will be
addressed ASAP. The major benefit of this work is that it will allow the
LLVM register allocator to allocate FP registers across basic blocks.
The x86 backend will still default to x87 style FP. To enable this work,
you must pass -enable-sse-scalar-fp and either -sse2 or -sse3 to llc.
An example before and after would be for:
double foo(double *P) { double Sum = 0; int i; for (i = 0; i < 1000; ++i)
Sum += P[i]; return Sum; }
The inner loop looks like the following:
x87:
.LBB_foo_1: # no_exit
fldl (%esp)
faddl (%eax,%ecx,8)
fstpl (%esp)
incl %ecx
cmpl $1000, %ecx
#FP_REG_KILL
jne .LBB_foo_1 # no_exit
SSE2:
addsd (%eax,%ecx,8), %xmm0
incl %ecx
cmpl $1000, %ecx
#FP_REG_KILL
jne .LBB_foo_1 # no_exit
llvm-svn: 22340
|
| |
|
|
|
|
| |
doesn't know who 'called' it.
llvm-svn: 22136
|
| |
|
|
|
|
| |
* Convert tabs to spaces
llvm-svn: 21426
|
| |
|
|
| |
llvm-svn: 18082
|
| |
|
|
|
|
| |
relocations for global references.
llvm-svn: 18068
|
| |
|
|
| |
llvm-svn: 18010
|
| |
|
|
| |
llvm-svn: 17902
|
| |
|
|
|
|
| |
hold your nose!)
llvm-svn: 17869
|
| |
|
|
|
|
|
| |
already been emitted, we don't have to remember it and deal with it later,
just emit it directly.
llvm-svn: 17868
|
| |
|
|
|
|
|
|
| |
* Get rid of "emitMaybePCRelativeValue", either we want to emit a PC relative
value or not: drop the maybe BS. As it turns out, the only places where
the bool was a variable coming in, the bool was a dynamic constant.
llvm-svn: 17867
|
| |
|
|
|
|
| |
set up.
llvm-svn: 17862
|
| |
|
|
| |
llvm-svn: 17488
|
| |
|
|
| |
llvm-svn: 17484
|
| |
|
|
| |
llvm-svn: 17126
|
| |
|
|
|
|
| |
us to use index registers for CPI's
llvm-svn: 17082
|
| |
|
|
|
|
| |
contributed by Jeff Cohen!
llvm-svn: 17010
|
| |
|
|
| |
llvm-svn: 16299
|
| |
|
|
|
|
|
|
| |
Move include/Config and include/Support into include/llvm/Config,
include/llvm/ADT and include/llvm/Support. From here on out, all LLVM
public header files must be under include/llvm/.
llvm-svn: 16137
|
| |
|
|
| |
llvm-svn: 15647
|
| |
|
|
|
|
|
|
| |
shrd [mem], reg, imm
This fixes the jit-ls failure on 186.crafty.
llvm-svn: 14914
|
| |
|
|
| |
llvm-svn: 13952
|
| |
|
|
|
|
| |
MachineBasicBlocks instead.
llvm-svn: 13568
|
| |
|
|
| |
llvm-svn: 13120
|
| |
|
|
| |
llvm-svn: 12894
|
| |
|
|
| |
llvm-svn: 12252
|
| |
|
|
| |
llvm-svn: 12251
|
| |
|
|
|
|
|
|
| |
the size of the immediate and the memory operand on instructions that
use them. This resolves problems with instructions that take both a
memory and an immediate operand but their sizes differ (i.e. ADDmi32b).
llvm-svn: 11967
|
| |
|
|
| |
llvm-svn: 11921
|
| |
|
|
| |
llvm-svn: 11560
|
| |
|
|
| |
llvm-svn: 11537
|
| |
|
|
|
|
|
|
|
|
| |
MRegisterInfo::getNumRegs() instead of
MRegisterInfo::FirstVirtualRegister.
Also use MRegisterInfo::is{Physical,Virtual}Register where
appropriate.
llvm-svn: 11477
|
| |
|
|
|
|
|
| |
that will be responsible for the creation of MachineFunctions and will
be required by all MachineFunctionPass passes.
llvm-svn: 11453
|
| |
|
|
|
|
| |
generating the llvm.memcpy intrinsic.
llvm-svn: 11351
|
| |
|
|
|
|
|
|
|
| |
ilist of MachineInstr objects. This allows constant time removal and
insertion of MachineInstr instances from anywhere in each
MachineBasicBlock. It also allows for constant time splicing of
MachineInstrs into or out of MachineBasicBlocks.
llvm-svn: 11340
|
| |
|
|
|
|
| |
operand of the instruction and thus simplify the register allocation.
llvm-svn: 11124
|
| |
|
|
|
|
|
|
|
|
| |
instruction selector by adding a new pseudo-instruction
FP_REG_KILL. This instruction implicitly defines all x86 fp registers
and is a terminator so that passes which add machine code at the end
of basic blocks (like phi elimination) do not add instructions between
it and the branch or return instruction.
llvm-svn: 10562
|
| |
|
|
|
|
|
| |
been emitted. Also, since the FPK pass is causing memory access violations,
disable it.
llvm-svn: 10559
|
| |
|
|
| |
llvm-svn: 10545
|
| |
|
|
| |
llvm-svn: 10542
|
| |
|
|
|
|
|
| |
a pointer. This evades a warning emitted by GCC when we cast from
unsigned int (32 bit) to void * (64 bit) on SparcV9.
llvm-svn: 10435
|
| |
|
|
|
|
| |
namespacification.
llvm-svn: 10430
|
| |
|
|
| |
llvm-svn: 9903
|
| |
|
|
|
|
| |
Header files will be on the way.
llvm-svn: 9298
|
| |
|
|
|
|
|
| |
* Implement R1 = R2 * C where R1 and R2 are 32 or 16 bits. This avoids an
extra copy into a register, reducing register pressure.
llvm-svn: 9278
|
| |
|
|
| |
llvm-svn: 9187
|
| |
|
|
| |
llvm-svn: 7944
|
| |
|
|
|
|
|
| |
FunctionPassManager, to support function-at-a-time compilation and
emission of code.
llvm-svn: 7821
|
| |
|
|
|
|
| |
Physical registers should not float around.
llvm-svn: 7587
|
| |
|
|
| |
llvm-svn: 7532
|