| 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: 148411
|
| |
|
|
| |
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
|
| |
|
|
|
|
| |
paths.
llvm-svn: 148362
|
| |
|
|
| |
llvm-svn: 148360
|
| |
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
|
| |
Targets can now add CalleeSavedRegs defs to their *CallingConv.td file.
TableGen will use this to create a *_SaveList array suitable for
returning from getCalleeSavedRegs() as well as a *_RegMask bit mask
suitable for returning from getCallPreservedMask().
llvm-svn: 148346
|
| |
|
|
| |
llvm-svn: 148344
|
| |
|
|
| |
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: 148339
|
| |
|
|
| |
llvm-svn: 148338
|
| |
|
|
| |
llvm-svn: 148337
|
| |
|
|
| |
llvm-svn: 148334
|
| |
|
|
| |
llvm-svn: 148332
|
| |
|
|
|
|
| |
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: 148316
|
| |
|
|
|
|
| |
The test passes on ARM bots
llvm-svn: 148315
|
| |
|
|
| |
llvm-svn: 148312
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
helpful to someone else.
This lets lldb give sane output for SmallVectors, e.g.
Before:
(lldb) p sv
(llvm::SmallVector<int, 10>) $0 = {
(llvm::SmallVectorImpl<int>) llvm::SmallVectorImpl<int> = {
(llvm::SmallVectorTemplateBase<int>) llvm::SmallVectorTemplateBase<int> = {
(llvm::SmallVectorTemplateCommon<int>) llvm::SmallVectorTemplateCommon<int> = {
(llvm::SmallVectorBase) llvm::SmallVectorBase = {
(void *) BeginX = 0x00007fff5fbff960
...
}
After:
(lldb) p sv
(llvm::SmallVector<int, 10>) $0 = {
(int) [0] = 42
(int) [1] = 23
...
}
The script is still a bit rough so expect crashes for vectors of complex types.
Synthetic children are _not_ available in xcode 4.2, newer LLDBs should work though.
llvm-svn: 148308
|
| |
|
|
|
|
| |
Instead, we now put the attributes of the container into members.
llvm-svn: 148302
|
| |
|
|
| |
llvm-svn: 148301
|
| |
|
|
|
|
|
|
|
| |
implementation.
Currently lit still executes ExecutionEngine tests with JIT (not MCJIT) by
default. MCJIT tests can be executed manually by calling llvm-lit with
--param jit_impl=mcjit
llvm-svn: 148299
|
| |
|
|
|
|
|
|
| |
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
|