- Jan 31, 2012
-
-
Chandler Carruth authored
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
-
- Jan 30, 2012
-
-
Matt Beaumont-Gay authored
*function*. Wrap the function in #ifndef NDEBUG. llvm-svn: 149259
-
Chris Lattner authored
like normal integers. llvm-svn: 149223
-
Chris Lattner authored
llvm-svn: 149222
-
- Jan 29, 2012
-
-
Jakob Stoklund Olesen authored
- 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
-
Jakob Stoklund Olesen authored
llvm-svn: 149188
-
- Jan 28, 2012
-
-
Bill Wendling authored
llvm-svn: 149164
-
Lang Hames authored
llvm-svn: 149163
-
Bill Wendling authored
llvm-svn: 149162
-
Bill Wendling authored
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
-
Lang Hames authored
llvm-svn: 149152
-
- Jan 27, 2012
-
-
Lang Hames authored
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
-
Lang Hames authored
llvm-svn: 149146
-
Lang Hames authored
llvm-svn: 149144
-
Lang Hames authored
llvm-svn: 149118
-
Chris Lattner authored
we should (theoretically optimize and codegen ConstantDataVector as well as ConstantVector. llvm-svn: 149116
-
Bill Wendling authored
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
-
Chris Lattner authored
llvm-svn: 149113
-
Chris Lattner authored
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
-
Lang Hames authored
llvm-svn: 149097
-
- Jan 26, 2012
-
-
Chris Lattner authored
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
-
Chris Lattner authored
llvm-svn: 149078
-
Chad Rosier authored
llvm-svn: 149075
-
Chad Rosier authored
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
-
Jakob Stoklund Olesen authored
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
-
James Molloy authored
Add support for the R_ARM_TARGET1 relocation, which should be given to 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
-
Chris Lattner authored
more robust) ways to do what it was doing now. Also, add static methods for decoding a ShuffleVector mask. llvm-svn: 149028
-
Jakob Stoklund Olesen authored
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
-
- Jan 25, 2012
-
-
Anton Korobeynikov authored
and let linker handle the rest. This finally fixes PR5329 llvm-svn: 148990
-
Lang Hames authored
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
-
Lang Hames authored
Always break upon finding a vreg operand (in Release as well as +Asserts). Remove assertion which can no longer trigger. llvm-svn: 148984
-
Chris Lattner authored
llvm-svn: 148929
-
Chris Lattner authored
llvm-svn: 148897
-
Jakob Stoklund Olesen authored
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
-
Jakob Stoklund Olesen authored
llvm-svn: 148878
-
- Jan 24, 2012
-
-
Jakob Stoklund Olesen authored
llvm-svn: 148825
-
Chris Lattner authored
llvm-svn: 148802
-
Evgeniy Stepanov authored
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
-
Benjamin Kramer authored
16 bits are sufficient to store attributes, tags and forms. llvm-svn: 148799
-
Eric Christopher authored
Saves about 1.5% on debug info size. rdar://10278198 llvm-svn: 148794
-