- Jan 28, 2012
-
-
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
-
David Greene authored
Get the record name though the init to avoid an assert. llvm-svn: 149153
-
Lang Hames authored
llvm-svn: 149152
-
Rafael Espindola authored
width. llvm-svn: 149151
-
- Jan 27, 2012
-
-
Rafael Espindola authored
Unfortunately I also had to disable constant-pool-sharing.ll the code it tests has been updated to use the IL logic. llvm-svn: 149148
-
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
-
Devang Patel authored
llvm-svn: 149142
-
Craig Topper authored
Move some patterns back near their instructions and use AddedComplexity to fix priority. Merge some patterns into their instruction definition. llvm-svn: 149122
-
Lang Hames authored
llvm-svn: 149118
-
Chris Lattner authored
llvm-svn: 149117
-
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
-
Chris Lattner authored
ConstantVector's to integer type. llvm-svn: 149110
-
Jim Grosbach authored
llvm-svn: 149106
-
Jim Grosbach authored
llvm-svn: 149105
-
Jim Grosbach authored
llvm-svn: 149102
-
Jim Grosbach authored
Provide source line number information. llvm-svn: 149101
-
Lang Hames authored
llvm-svn: 149097
-
Jim Grosbach authored
llvm-svn: 149096
-
Jim Grosbach authored
Adjust an example MachObjectWriter diagnostic to use the information to issue a better message. Before: LLVM ERROR: unknown ARM fixup kind! After: x.s:6:5: error: unsupported relocation on symbol beq bar ^ rdar://9800182 llvm-svn: 149093
-
Jim Grosbach authored
Can be used to issue more user friendly diagnostics for faulty relocation constructs and such. llvm-svn: 149092
-
Jim Grosbach authored
llvm-svn: 149090
-
- Jan 26, 2012
-
-
Jakob Stoklund Olesen authored
The Win64 calling convention has xmm6-15 as callee-saved while still clobbering all ymm registers. Add a YMM_HI_6_15 pseudo-register that aliases the clobbered part of the ymm registers, and mark that as call-clobbered. This allows live xmm registers across calls. This hack wouldn't be necessary with RegisterMask operands representing the call clobbers, but they are not quite operational yet. llvm-svn: 149088
-
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
-
Chris Lattner authored
llvm-svn: 149077
-
Chris Lattner authored
ConstantExpr::getWithOperandReplaced and ConstantExpr::replaceUsesOfWithOnConstant in terms of ConstantExpr::getWithOperands. While we're at it, make sure that ConstantExpr::getWithOperands covers all instructions: it was missing insert/extractvalue. llvm-svn: 149076
-
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
-
Jim Grosbach authored
llvm-svn: 149062
-
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
-
Victor Umansky authored
. "fptosi" and "fptoui" IR instructions are defined with round-to-zero rounding mode. . Currently for AVX mode for <4xdouble> and <8xdouble> the "VCVTPD2DQ.128" and "VCVTPD2DQ.256" instructions are selected (for .fp_to_sint. DAG node operation ) by AVX codegen. However they use round-to-nearest-even rounding mode. . Consequently, the conversion produces incorrect numbers. The fix is to replace selection of VCVTPD2DQ instructions with VCVTTPD2DQ instructions. The latter use truncate (i.e. round-to-zero) rounding mode. As .fp_to_sint. DAG node operation is used only for lowering of "fptosi" and "fptoui" IR instructions, the fix in X86InstrSSE.td definition file doesn.t have an impact on other LLVM flows. The patch includes changes in the .td file, LIT test for the changes and a fix in a legacy LIT test (which produced asm code conflicting with LLVN IR spec). llvm-svn: 149056
-
Craig Topper authored
llvm-svn: 149054
-