| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
test to fail.
These are:
r149348
r149351
r149352
r149354
r149356
r149357
r149361
r149362
r149364
r149365
llvm-svn: 149470
|
| |
|
|
| |
llvm-svn: 149398
|
| |
|
|
|
|
| |
methods and constant fold the clients to false.
llvm-svn: 149362
|
| |
|
|
|
|
|
|
| |
This removes implicit assumption about the form of MI coming into regalloc. In particular, it should be independent of ProcessImplicitDefs which will eventually become a standard part of coming out of SSA--unless we simply can eliminate IMPLICIT_DEF completely. Current unit tests expose this once I remove incidental pass ordering restrictions.
This is not a final fix. Just a temporary workaround until I figure out the right way.
llvm-svn: 149360
|
| |
|
|
| |
llvm-svn: 149356
|
| |
|
|
|
|
| |
which is going away.
llvm-svn: 149348
|
| |
|
|
|
|
| |
CodeGen/X86/global-sections.ll to fail with CDArray
llvm-svn: 149343
|
| |
|
|
| |
llvm-svn: 149331
|
| |
|
|
|
|
|
| |
over the catch information. The catch information is now tacked to the invoke
instruction.
llvm-svn: 149326
|
| |
|
|
|
|
| |
Not committing a testcase because I think it will be too fragile.
llvm-svn: 149315
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
vectors of all one bits to be printed more cleverly in the AsmPrinter.
Unfortunately, the byte value for all one bits is the same with
-fsigned-char as the error return of '-1'. Force this to be the unsigned
byte value when returning it to avoid this problem, and update the test
case for the shiny new behavior.
Yay for building LLVM and Clang with -funsigned-char.
Chris, please review, and let me know if there is any reason to not
desire this change. It seems good on the surface, and certainly intended
based on the code written.
llvm-svn: 149299
|
| |
|
|
|
|
| |
*function*. Wrap the function in #ifndef NDEBUG.
llvm-svn: 149259
|
| |
|
|
|
|
| |
like normal integers.
llvm-svn: 149223
|
| |
|
|
| |
llvm-svn: 149222
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
- Don't call malloc+free in the very hot forward().
- Don't call isTiedToDefOperand().
- Don't create BitVector temporaries.
- Merge DeadRegs into KillRegs.
- Eliminate the early clobber checks, they were irrelevant to scavenging.
- Remove unnecessary code from -Asserts builds.
This speeds up ARM PEI by 3.4x and overall llc -O0 codegen time by 11%.
llvm-svn: 149189
|
| |
|
|
| |
llvm-svn: 149188
|
| |
|
|
| |
llvm-svn: 149164
|
| |
|
|
| |
llvm-svn: 149163
|
| |
|
|
| |
llvm-svn: 149162
|
| |
|
|
|
|
|
|
|
|
|
| |
Sometimes there is only one 'resume' instruction per function. In those
situations, we don't need a separate block for the call to _Unwind_Resume. In
fact, it adds a lot of overhead to code-gen if we do that -- especially at -O0.
If we have a single 'resume' instruction, just generate the call within that
block.
<rdar://problem/10694814>
llvm-svn: 149159
|
| |
|
|
| |
llvm-svn: 149152
|
| |
|
|
|
|
|
|
|
| |
around within a basic block while maintaining live-intervals.
Updated ScheduleTopDownLive in MachineScheduler.cpp to use the moveInstr API
when reordering MIs.
llvm-svn: 149147
|
| |
|
|
| |
llvm-svn: 149146
|
| |
|
|
| |
llvm-svn: 149144
|
| |
|
|
| |
llvm-svn: 149118
|
| |
|
|
|
|
|
| |
we should (theoretically optimize and codegen ConstantDataVector as well
as ConstantVector.
llvm-svn: 149116
|
| |
|
|
|
|
|
|
|
|
|
| |
GEP instructions are there for the compiler and shouldn't really output much
code (if any at all). When a GEP is stored in the entry block, Fast ISel (for
one) will not know that it could fold it into further uses. For instance, inside
of the EH handling code. This results in a lot of unnecessary spills and loads
which bloat code and slows down pretty much everything.
<rdar://problem/10694814>
llvm-svn: 149114
|
| |
|
|
| |
llvm-svn: 149113
|
| |
|
|
|
|
|
|
| |
mid-level constant folding APIs instead of doing its own analysis.
This makes it more general (e.g. can now share a <2 x i64> with a
<4 x i32>) and avoid duplicating a bunch of logic.
llvm-svn: 149111
|
| |
|
|
| |
llvm-svn: 149097
|
| |
|
|
|
|
|
|
| |
we're at it, allow PatternMatch's "neg" pattern to match integer
vector negations, and enhance ComputeNumSigned bits to handle
shl of vectors.
llvm-svn: 149082
|
| |
|
|
| |
llvm-svn: 149078
|
| |
|
|
| |
llvm-svn: 149075
|
| |
|
|
|
|
|
|
|
| |
MachineBasicBlock::canFallThrough(). We're interested in the state of the
instruction (i.e., is this a barrier or not?), not if the instruction is
predicable or not.
rdar://10501092
llvm-svn: 149070
|
| |
|
|
|
|
|
|
|
|
| |
The live range of the source register may be extended when a redundant
copy is eliminated. Make sure any kill flags between the two copies are
cleared.
This fixes PR11765.
llvm-svn: 149069
|
| |
|
|
|
|
|
|
| |
relocations applied to all C++ constructors and destructors.
This enables the linker to match concrete relocation types (absolute or relative) with whatever library or C++ support code is being linked against.
llvm-svn: 149057
|
| |
|
|
|
|
|
| |
more robust) ways to do what it was doing now. Also, add static methods
for decoding a ShuffleVector mask.
llvm-svn: 149028
|
| |
|
|
|
|
|
|
|
| |
This boils down to using MachineOperand::readsReg() more.
This fixes PR11829 where a use ended up after the first def when
lowering REG_SEQUENCE instructions involving IMPLICIT_DEFs.
llvm-svn: 148996
|
| |
|
|
|
|
|
|
| |
and let linker handle the rest.
This finally fixes PR5329
llvm-svn: 148990
|
| |
|
|
|
|
|
|
| |
function. They don't appear to be used, and are inconsistent with handling of
other physreg intervals (i.e. intervals that are not live-in) where ranges are
not inserted for aliases.
llvm-svn: 148986
|
| |
|
|
|
|
| |
Remove assertion which can no longer trigger.
llvm-svn: 148984
|
| |
|
|
| |
llvm-svn: 148929
|
| |
|
|
| |
llvm-svn: 148897
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
A REG_SEQUENCE instruction is lowered into a sequence of partial defs:
%vreg7:ssub_0<def,undef> = COPY %vreg20:ssub_0
%vreg7:ssub_1<def> = COPY %vreg2
%vreg7:ssub_2<def> = COPY %vreg2
%vreg7:ssub_3<def> = COPY %vreg2
The first def needs an <undef> flag to indicate it is the beginning of
the live range, while the other defs are read-modify-write. Previously,
we depended on LiveIntervalAnalysis to notice and fix the missing
<def,undef>, but that solution was never robust, it was causing problems
with ProcessImplicitDefs and the lowering of chained REG_SEQUENCE
instructions.
This fixes PR11841.
llvm-svn: 148879
|
| |
|
|
| |
llvm-svn: 148878
|
| |
|
|
| |
llvm-svn: 148825
|
| |
|
|
| |
llvm-svn: 148802
|
| |
|
|
|
|
|
|
| |
This change adds an new option --arm-enable-ehabi-descriptors that
enables emitting unwinding descriptors. This provides a mode with a
working backtrace() without the (currently broken) exception support.
llvm-svn: 148800
|
| |
|
|
|
|
| |
16 bits are sufficient to store attributes, tags and forms.
llvm-svn: 148799
|
| |
|
|
|
|
|
|
| |
Saves about 1.5% on debug info size.
rdar://10278198
llvm-svn: 148794
|