| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
|
|
|
|
|
|
|
|
| |
If the two fragments are in the same Atom, then the difference
expression is resolvable at compile time. Previously we were checking
that they were in the same fragment, but that breaks down in the
presence of instruction relaxation which has multiple fragments in the
same atom.
rdar://10711829
llvm-svn: 148423
|
| |
|
|
| |
llvm-svn: 148422
|
| |
|
|
| |
llvm-svn: 148419
|
| |
|
|
|
|
| |
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
|