| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
|
|
|
|
|
| |
FrameIndexes should be lowered, but the same way as
everything else (target dependent) rather than in a
special hacked way. The lowering needs to be done
for eventual purposes of Dwarf generation.
llvm-svn: 93530
|
| |
|
|
|
|
|
| |
X86Operand::Create* implementations to avoid
copy ctor use.
llvm-svn: 93528
|
| |
|
|
|
|
|
|
|
| |
Remove most of old Mach-O Writer support, it has been replaced by MCMachOStreamer
Further refactoring to completely remove MachOWriter and drive the object file
writer with the AsmPrinter MCInst/MCSection logic is forthcoming.
llvm-svn: 93527
|
| |
|
|
| |
llvm-svn: 93526
|
| |
|
|
|
|
| |
datastructure when parsing a mem operand.
llvm-svn: 93521
|
| |
|
|
|
|
| |
auto-upgraded
llvm-svn: 93515
|
| |
|
|
|
|
| |
integer type is used.
llvm-svn: 93509
|
| |
|
|
|
|
|
|
|
| |
The pre-regalloc pass caused some regressions in both compile time and
performance of the generated code, and it did not improve performance, except
for indirect branches. I also moved the check for single-block loops to speed
up the common case when running the taildup pass before reg allocation.
llvm-svn: 93505
|
| |
|
|
|
|
|
|
| |
its first argument, via function-local metadata (instead of via a bitcast).
This patch also cleans up code that expects there to be a bitcast in the first argument and testcases that call llvm.dbg.declare.
llvm-svn: 93504
|
| |
|
|
|
|
| |
print it as a comment on X86.
llvm-svn: 93499
|
| |
|
|
|
|
| |
"icmp lhs, rhs" into "cmp rhs, lhs". This should fix PR5979.
llvm-svn: 93496
|
| |
|
|
| |
llvm-svn: 93494
|
| |
|
|
| |
llvm-svn: 93487
|
| |
|
|
| |
llvm-svn: 93484
|
| |
|
|
|
|
| |
We need to find a better way to emit this info.
llvm-svn: 93481
|
| |
|
|
| |
llvm-svn: 93480
|
| |
|
|
|
|
| |
EmitAtomicBinary() already does this.
llvm-svn: 93479
|
| |
|
|
|
|
| |
JITTest.FunctionIsRecompiledAndRelinked.)
llvm-svn: 93475
|
| |
|
|
|
|
| |
commit.
llvm-svn: 93473
|
| |
|
|
|
|
| |
the disassembler can properly decode Load/Store register/immediate instructions.
llvm-svn: 93471
|
| |
|
|
|
|
|
|
|
|
|
| |
the new ParseInstruction method just parses and returns a list of
target operands. A new MatchInstruction interface is used to
turn the operand list into an MCInst.
This requires new/deleting all the operands, but it also gives
targets the ability to use polymorphic operands if they want to.
llvm-svn: 93469
|
| |
|
|
| |
llvm-svn: 93467
|
| |
|
|
| |
llvm-svn: 93463
|
| |
|
|
| |
llvm-svn: 93462
|
| |
|
|
| |
llvm-svn: 93459
|
| |
|
|
|
|
|
| |
Pass in SMLoc of instr opcode into ParseInstruction.
Make AsmToken be a class, not a struct.
llvm-svn: 93457
|
| |
|
|
|
|
|
|
|
| |
catch info can get misplaced when a selector ends up more than one block
removed from the parent invoke(s). This could happen when a landing pad is
shared by multiple invokes and is also a target of a normal edge from
elsewhere.
llvm-svn: 93456
|
| |
|
|
| |
llvm-svn: 93455
|
| |
|
|
| |
llvm-svn: 93454
|
| |
|
|
|
|
| |
optimized away in codegen.
llvm-svn: 93453
|
| |
|
|
|
|
| |
Patch by Diego Iastrubni!
llvm-svn: 93450
|
| |
|
|
| |
llvm-svn: 93449
|
| |
|
|
|
|
| |
and frequently optimized functions.
llvm-svn: 93448
|
| |
|
|
| |
llvm-svn: 93446
|
| |
|
|
|
|
| |
function-local MD to write based on the function currently being written
llvm-svn: 93441
|
| |
|
|
|
|
|
|
|
| |
This is consistent with llvm-gcc's arm/constraints.md.
Certain instructions (e.g. CBZ, CBNZ) require a low register, even in Thumb2
mode.
llvm-svn: 93436
|
| |
|
|
| |
llvm-svn: 93417
|
| |
|
|
|
|
| |
instructions, so instruction's references to metadata are fully resolved by the time they get written.
llvm-svn: 93403
|
| |
|
|
| |
llvm-svn: 93402
|
| |
|
|
| |
llvm-svn: 93401
|
| |
|
|
|
|
| |
has function that it is local to.
llvm-svn: 93400
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
An unaligned ldr causes a trap, and is then emulated by the kernel with
awesome performance. The darwin kernel does not emulate unaligned ldm/stm
Thumb2 instructions, so don't generate them.
This fixes the miscompilation of Multisource/Applications/JM/lencod for Thumb2.
Generating unaligned ldr/str pairs from a 16-bit aligned memcpy is probably
also a bad idea, but that is beyond the scope of this patch.
llvm-svn: 93393
|
| |
|
|
| |
llvm-svn: 93373
|
| |
|
|
| |
llvm-svn: 93372
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
added to the FSub version. However, the original version of this xform guarded
against doing this for floating point (!Op0->getType()->isFPOrFPVector()).
This is causing LLVM to perform incorrect xforms for code like:
void func(double *rhi, double *rlo, double xh, double xl, double yh, double yl){
double mh, ml;
double c = 134217729.0;
double up, u1, u2, vp, v1, v2;
up = xh*c;
u1 = (xh - up) + up;
u2 = xh - u1;
vp = yh*c;
v1 = (yh - vp) + vp;
v2 = yh - v1;
mh = xh*yh;
ml = (((u1*v1 - mh) + (u1*v2)) + (u2*v1)) + (u2*v2);
ml += xh*yl + xl*yh;
*rhi = mh + ml;
*rlo = (mh - (*rhi)) + ml;
}
The last line was optimized away, but rl is intended to be the difference
between the infinitely precise result of mh + ml and after it has been rounded
to double precision.
llvm-svn: 93369
|
| |
|
|
|
|
| |
obsolete Mangler interfaces.
llvm-svn: 93356
|
| |
|
|
| |
llvm-svn: 93355
|
| |
|
|
| |
llvm-svn: 93352
|
| |
|
|
| |
llvm-svn: 93351
|
| |
|
|
| |
llvm-svn: 93350
|