| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
of recognizing them by name.
llvm-svn: 148416
|
| |
|
|
| |
llvm-svn: 148415
|
| |
|
|
| |
llvm-svn: 148408
|
| |
|
|
| |
llvm-svn: 148401
|
| |
|
|
| |
llvm-svn: 148400
|
| |
|
|
| |
llvm-svn: 148384
|
| |
|
|
|
|
| |
vector type to another, we must not bitcast the result if one type is widened while the other is promoted.
llvm-svn: 148383
|
| |
|
|
|
|
| |
TwoAddressInstructionPass to insert copies for any physical reg operands of the REG_SEQUENCE
llvm-svn: 148377
|
| |
|
|
|
|
|
|
|
|
| |
Load/store instructions w/ a fixup to be relative a function marked as thumb
don't use the low bit to specify thumb vs. non-thumb like interworking
branches do, so don't set it when dealing with those fixups.
rdar://10348687.
llvm-svn: 148366
|
| |
|
|
| |
llvm-svn: 148364
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When set, this bit indicates that a register is completely defined by
the value of its sub-registers.
Use the CoveredBySubRegs property to infer which super-registers are
call-preserved given a list of callee-saved registers. For example, the
ARM registers D8-D15 are callee-saved. This now automatically implies
that Q4-Q7 are call-preserved.
Conversely, Win64 callees save XMM6-XMM15, but the corresponding
YMM6-YMM15 registers are not call-preserved because they are not fully
defined by their sub-registers.
llvm-svn: 148363
|
| |
|
|
|
|
| |
Move ARM callee-saved lists into ARMCallingConv.td.
llvm-svn: 148357
|
| |
|
|
|
|
|
| |
The JIT is expected to take ownership of the TM that's passed in. The MCJIT
wasn't freeing it, resulting in leaks.
llvm-svn: 148356
|
| |
|
|
|
|
| |
Add a trivial implementation of the getCallPreservedMask() hook.
llvm-svn: 148347
|
| |
|
|
| |
llvm-svn: 148342
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
When the non-local symbol in the expression is in the same fragment
as the second symbol, the assembler can still evaluate the expression
without needing a relocation.
For example, on ARM:
_foo:
ldr lr, (_foo - 4)
rdar://10348687
llvm-svn: 148341
|
| |
|
|
| |
llvm-svn: 148338
|
| |
|
|
| |
llvm-svn: 148337
|
| |
|
|
| |
llvm-svn: 148334
|
| |
|
|
|
|
| |
autorelease push+pop pairs.
llvm-svn: 148330
|
| |
|
|
|
|
|
| |
EP_ModuleOptimizerEarly, to allow passes to be added before the
main ModulePass optimizers.
llvm-svn: 148329
|
| |
|
|
| |
llvm-svn: 148322
|
| |
|
|
|
|
| |
displacement.
llvm-svn: 148321
|
| |
|
|
| |
llvm-svn: 148312
|
| |
|
|
|
|
| |
Instead, we now put the attributes of the container into members.
llvm-svn: 148302
|
| |
|
|
| |
llvm-svn: 148301
|
| |
|
|
|
|
|
|
| |
In CanXFormVExtractWithShuffleIntoLoad we assumed that EXTRACT_VECTOR_ELT can be later handled by the DAGCombiner.
However, in some cases on AVX, the EXTRACT_VECTOR_ELT is legalized to EXTRACT_SUBVECTOR + EXTRACT_VECTOR_ELT, which
currently is not handled by the DAGCombiner. In this patch I added a check that we only extract from the XMM part.
llvm-svn: 148298
|
| |
|
|
|
|
| |
type.
llvm-svn: 148297
|
| |
|
|
| |
llvm-svn: 148295
|
| |
|
|
| |
llvm-svn: 148293
|
| |
|
|
|
|
| |
ShuffleInstructions.
llvm-svn: 148291
|
| |
|
|
|
|
| |
Responding to code review.
llvm-svn: 148290
|
| |
|
|
|
|
| |
More short term hackery until we have a way to configure passes that work on LiveIntervals.
llvm-svn: 148289
|
| |
|
|
|
|
|
| |
It's becoming clear that LoopSimplify needs to unconditionally create loop preheaders. But that is a bigger fix. For now, continuing to hack LSR.
Fixes rdar://10701050 "Cannot split an edge from an IndirectBrInst" assert.
llvm-svn: 148288
|
| |
|
|
|
|
| |
Probably could use better handling in DAG combine or getNode. Fixes PR11772.
llvm-svn: 148285
|
| |
|
|
|
|
| |
necessary)
llvm-svn: 148284
|
| |
|
|
|
|
|
|
|
|
|
| |
or clang bootstrap.
I will keep an eye on the bots.
Original message:
Only emit the Leh_func_endN symbol when needed.
llvm-svn: 148283
|
| |
|
|
|
|
| |
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
|