| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
checked for legalisation
llvm-svn: 148275
|
| |
|
|
| |
llvm-svn: 148268
|
| |
|
|
| |
llvm-svn: 148265
|
| |
|
|
| |
llvm-svn: 148264
|
| |
|
|
| |
llvm-svn: 148263
|
| |
|
|
|
|
|
|
| |
account for all enumeration values explicitly.
(This time I believe I've checked all the -Wreturn-type warnings from GCC & added the couple of llvm_unreachables necessary to silence them. If I've missed any, I'll happily fix them as soon as I know about them)
llvm-svn: 148262
|
| |
|
|
|
|
| |
No test case: output assembly will be identical.
llvm-svn: 148261
|
| |
|
|
|
|
| |
does not have a corresponding SUnit
llvm-svn: 148260
|
| |
|
|
|
|
| |
It is safe to move uses of such registers.
llvm-svn: 148259
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Move to a by-section allocation and relocation scheme. This allows
better support for sections which do not contain externally visible
symbols.
Flesh out the relocation address vs. local storage address separation a
bit more as well. Remote process JITs use this to tell the relocation
resolution code where the code will live when it executes.
The startFunctionBody/endFunctionBody interfaces to the JIT and the
memory manager are deprecated. They'll stick around for as long as the
old JIT does, but the MCJIT doesn't use them anymore.
llvm-svn: 148258
|
| |
|
|
| |
llvm-svn: 148252
|
| |
|
|
| |
llvm-svn: 148251
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Register masks will be used as a compact representation of large clobber
lists. Currently, an x86 call instruction has some 40 operands
representing call-clobbered registers. That's more than 1kB of useless
operands per call site.
A register mask operand references a bit mask of call-preserved
registers, everything else is clobbered. The bit mask will typically
come from TargetRegisterInfo::getCallPreservedMask().
By abandoning ImplicitDefs for call-clobbered registers, it also becomes
possible to share call instruction descriptions between calling
conventions, and we can get rid of the WINCALL* instructions.
This patch introduces the new operand kind. Future patches will add
RegMask support to target-independent passes before finally the fixed
clobber lists can be removed from call instruction descriptions.
llvm-svn: 148250
|
| |
|
|
| |
llvm-svn: 148240
|
| |
|
|
| |
llvm-svn: 148239
|
| |
|
|
| |
llvm-svn: 148233
|
| |
|
|
|
|
| |
type" error on some 32-bit bots
llvm-svn: 148232
|
| |
|
|
|
|
|
|
| |
currently basic and will be enhanced with future patches.
Patch developed by Andy Kaylor and Daniel Malea. Reviewed on llvm-commits.
llvm-svn: 148231
|
| |
|
|
|
|
| |
unused variables).
llvm-svn: 148230
|
| |
|
|
|
|
| |
arithmetic so should not be checked in legalisation
llvm-svn: 148228
|
| |
|
|
|
|
|
|
|
|
|
| |
We know that the blend instructions only use the MSB, so if the mask is
sign-extended then we can convert it into a SHL instruction. This is a
common pattern because the type-legalizer sign-extends the i1 type which
is used by the LLVM-IR for the condition.
Added a new optimization in SimplifyDemandedBits for SIGN_EXTEND_INREG -> SHL.
llvm-svn: 148225
|
| |
|
|
|
|
| |
CodeGen.
llvm-svn: 148218
|
| |
|
|
| |
llvm-svn: 148217
|
| |
|
|
| |
llvm-svn: 148216
|
| |
|
|
|
|
|
|
|
| |
std::map, since we need to keep a valid pointer to properties of current loop.
Message for r148132:
LoopUnswitch: All helper data that is collected during loop-unswitch iterations was moved to separated class (LUAnalysisCache).
llvm-svn: 148215
|
| |
|
|
|
|
|
|
|
|
|
|
| |
or Clang is using this, and it would be hard to use it correctly given
the thread hostility of the function. Also, it never checked the return
which is rather dangerous with chdir. If someone was in fact using this,
please let me know, as well as what the usecase actually is so that
I can add it back and make it more correct and secure to use. (That
said, it's never going to be "safe" per-se, but we could at least
document the risks...)
llvm-svn: 148211
|
| |
|
|
| |
llvm-svn: 148206
|
| |
|
|
| |
llvm-svn: 148205
|
| |
|
|
|
|
| |
f128mem instead of f256mem.
llvm-svn: 148196
|
| |
|
|
|
|
| |
alignment on 256-bit AVX2 instructions.
llvm-svn: 148194
|
| |
|
|
|
|
|
|
| |
non-determinism in the 32 bit dragonegg buildbot. Original commit
message:
Only emit the Leh_func_endN symbol when needed.
llvm-svn: 148191
|
| |
|
|
|
|
| |
Fixes PR11761: bad IR w/ redundant Phi elim
llvm-svn: 148177
|
| |
|
|
| |
llvm-svn: 148175
|
| |
|
|
| |
llvm-svn: 148174
|
| |
|
|
| |
llvm-svn: 148173
|
| |
|
|
| |
llvm-svn: 148172
|
| |
|
|
| |
llvm-svn: 148171
|
| |
|
|
|
|
| |
be split up later.
llvm-svn: 148170
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
live across BBs before register allocation. This miscompiled 197.parser
when a cmp + b are optimized to a cbnz instruction even though the CPSR def
is live-in a successor.
cbnz r6, LBB89_12
...
LBB89_12:
ble LBB89_1
The fix consists of two parts. 1) Teach LiveVariables that some unallocatable
registers might be liveouts so don't mark their last use as kill if they are.
2) ARM constantpool island pass shouldn't form cbz / cbnz if the conditional
branch does not kill CPSR.
rdar://10676853
llvm-svn: 148168
|
| |
|
|
| |
llvm-svn: 148167
|
| |
|
|
| |
llvm-svn: 148164
|
| |
|
|
| |
llvm-svn: 148156
|
| |
|
|
|
|
|
|
|
|
| |
The QQ and QQQQ registers are not 'real', they are pseudo-registers used
to model some vld and vst instructions.
This makes the call clobber lists longer, but I intend to get rid of
those soon.
llvm-svn: 148151
|
| |
|
|
| |
llvm-svn: 148150
|
| |
|
|
| |
llvm-svn: 148149
|
| |
|
|
| |
llvm-svn: 148143
|
| |
|
|
| |
llvm-svn: 148134
|
| |
|
|
| |
llvm-svn: 148133
|
| |
|
|
|
|
| |
iterations was moved to separated class (LUAnalysisCache).
llvm-svn: 148132
|
| |
|
|
| |
llvm-svn: 148131
|