| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
llvm-svn: 104337
|
| |
|
|
|
|
|
| |
Case where MMX is disabled wasn't handled right.
MMX->MMX bitconverts are Legal.
llvm-svn: 104336
|
| |
|
|
|
|
|
|
| |
ZeroFillSize parameter
If the size of the string is greater than the zero fill size, the function will attempt to write a very large string of zeros to the object file (~4GB on 32 bit platforms). This assertion will catch the scenario and crash the program before the write occurs.
llvm-svn: 104334
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
pass after isel instead of being interlaced with it, we can
trust that all the code for a function has been isel'd before
it is run.
The practical impact of this is that we can scan for machine
instr phis instead of doing a fuzzy match on the LLVM BB for
phi nodes. Doing the fuzzy match required knowing when isel
would produce an fp reg stack phi which was gross. It was
also wrong in cases where select got lowered to a branch
tree because cmovs aren't available (PR6828).
Just do the scan on machine phis which is simpler, faster
and more correct. This fixes PR6828.
llvm-svn: 104333
|
| |
|
|
| |
llvm-svn: 104331
|
| |
|
|
| |
llvm-svn: 104330
|
| |
|
|
|
|
| |
eliminating the gymnastics around the ContainsFPCode var.
llvm-svn: 104328
|
| |
|
|
| |
llvm-svn: 104326
|
| |
|
|
| |
llvm-svn: 104325
|
| |
|
|
|
|
|
|
| |
register is read."
This reverts r104322. I think it was causing miscompilations.
llvm-svn: 104323
|
| |
|
|
|
|
| |
This correctly handles partial redefines and undef uses.
llvm-svn: 104322
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
definitions of the virtual register.
This happens when spilling the registers produced by REG_SEQUENCE:
%reg1047:5<def>, %reg1047:6<def>, %reg1047:7<def> = VLD3d8 %reg1033, 0, pred:14, pred:%reg0
The rewriter would spill the register multiple times, dead store elimination
tried to keep up, but ended up cutting the branch it was sitting on.
llvm-svn: 104321
|
| |
|
|
|
|
|
| |
<imp-def> operand for the full register. This ensures that the full physical
register is marked live after register allocation.
llvm-svn: 104320
|
| |
|
|
|
|
|
|
|
| |
isn't ideal if we want to be able to use another object file format.
Add a createObjectStreamer() factory method so that the correct object
file streamer can be instantiated for a given target triple.
llvm-svn: 104318
|
| |
|
|
|
|
| |
differently. This will make adding ELF support easier in the long run.
llvm-svn: 104317
|
| |
|
|
| |
llvm-svn: 104316
|
| |
|
|
|
|
| |
not used).
llvm-svn: 104311
|
| |
|
|
|
|
|
| |
tricky since there's a 3rd 64-bit type, MMX vectors.
PR 7135.
llvm-svn: 104308
|
| |
|
|
|
|
| |
point instructions (and is not using soft float).
llvm-svn: 104307
|
| |
|
|
| |
llvm-svn: 104306
|
| |
|
|
| |
llvm-svn: 104303
|
| |
|
|
| |
llvm-svn: 104302
|
| |
|
|
| |
llvm-svn: 104300
|
| |
|
|
|
|
| |
what for latency in hybrid mode.
llvm-svn: 104293
|
| |
|
|
| |
llvm-svn: 104290
|
| |
|
|
| |
llvm-svn: 104287
|
| |
|
|
| |
llvm-svn: 104279
|
| |
|
|
|
|
| |
top-level LSRInstance logic.
llvm-svn: 104278
|
| |
|
|
| |
llvm-svn: 104276
|
| |
|
|
|
|
| |
movq.
llvm-svn: 104275
|
| |
|
|
| |
llvm-svn: 104274
|
| |
|
|
|
|
| |
aren't needed.
llvm-svn: 104273
|
| |
|
|
| |
llvm-svn: 104272
|
| |
|
|
| |
llvm-svn: 104271
|
| |
|
|
|
|
| |
it.
llvm-svn: 104270
|
| |
|
|
|
|
|
|
|
| |
Changed directly instead of using a return value.
Rename FilterOutUndesirableDedicatedRegisters's Changed variable to
distinguish it from LSRInstance's Changed member.
llvm-svn: 104269
|
| |
|
|
| |
llvm-svn: 104268
|
| |
|
|
| |
llvm-svn: 104267
|
| |
|
|
| |
llvm-svn: 104265
|
| |
|
|
| |
llvm-svn: 104264
|
| |
|
|
| |
llvm-svn: 104263
|
| |
|
|
|
|
|
|
|
|
|
|
| |
operand on the left, the interesting operand is on the right. This
fixes a bug where LSR was failing to recognize ICmpZero uses,
which led it to be unable to reverse the induction variable in the
attached testcase.
Delete test/CodeGen/X86/stack-color-with-reg-2.ll, because its test
is extremely fragile and hard to meaningfully update.
llvm-svn: 104262
|
| |
|
|
| |
llvm-svn: 104261
|
| |
|
|
|
|
| |
it isn't a very interesting change, it's a change nonetheless.
llvm-svn: 104260
|
| |
|
|
|
|
| |
This fixes the remaining issue with pr7167.
llvm-svn: 104257
|
| |
|
|
| |
llvm-svn: 104254
|
| |
|
|
|
|
| |
have a pattern and it had an invalid encoding.
llvm-svn: 104244
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
registers. Currently it is not so marked, which leads to
VCMPEQ instructions that feed into it getting deleted.
If it is so marked, local RA complains about this sequence:
vreg = MCRF CR0
MFCR <kill of whatever preg got assigned to vreg>
All current uses of this instruction are only interested in
one of the 8 CR registers, so redefine MFCR to be a normal
unary instruction with a CR input (which is emitted only as
a comment). That avoids all problems. 7739628.
llvm-svn: 104238
|
| |
|
|
| |
llvm-svn: 104236
|
| |
|
|
| |
llvm-svn: 104234
|