- Aug 10, 2011
-
-
Devang Patel authored
Distinguish between two copies of one inlined variable. Take 2. llvm-svn: 137253
-
Devang Patel authored
While extending definition range of a debug variable, consult lexical scopes also. There is no point extending debug variable out side its lexical block. This provides 6x compile time speedup in some cases. llvm-svn: 137250
-
Devang Patel authored
llvm-svn: 137249
-
Devang Patel authored
llvm-svn: 137246
-
Jim Grosbach authored
llvm-svn: 137245
-
Jim Grosbach authored
llvm-svn: 137244
-
Eli Friedman authored
llvm-svn: 137243
-
Nadav Rotem authored
llvm-svn: 137241
-
Nadav Rotem authored
data in-register prior to saving to memory. When we reorder the data in memory we prevent the need to save multiple scalars to memory, making a single regular store. llvm-svn: 137238
-
Devang Patel authored
llvm-svn: 137237
-
Owen Anderson authored
llvm-svn: 137236
-
David Greene authored
Use an Init (ultimately a StringInit) to represent the Record name. This allows the name to be composed by standard TableGen operators. This will enable us to get rid of the ugly #NAME# hack processing and naturally replace it with operators. It also increases flexibility and power of the TableGen language by allowing record identifiers to be computed dynamically. llvm-svn: 137232
-
David Greene authored
Add a method to return an Init as an unquoted string. This primarily affects StringInit where we return the value without surrounding it with quotes. This is in preparation for removing the ugly #NAME# hack and replacing it with standard TabelGen operators. llvm-svn: 137231
-
Andrew Trick authored
Also, my apologies for spoiling the autocomplete on SimplifyInstructions.cpp. I couldn't think of a better filename. llvm-svn: 137229
-
Bruno Cardoso Lopes authored
def : Pat<(X86Movss VR128:$src1, (bc_v4i32 (v2i64 (load addr:$src2)))), (MOVLPSrm VR128:$src1, addr:$src2)>; This matches a MOVSS dag with a MOVLPS instruction. However, MOVSS will replace only the low 32 bits of the register, while the MOVLPS instruction will replace the low 64 bits. A testcase is added and illustrates the bug and also modified the one that was already present. Patch by Tanya Lattner. llvm-svn: 137227
-
Eli Friedman authored
llvm-svn: 137226
-
Owen Anderson authored
llvm-svn: 137225
-
Owen Anderson authored
llvm-svn: 137224
-
Owen Anderson authored
Rewrite some ARM InstrInfo functions to be most accepting of arbitrary register subclasses. Hopefully this fixes some buildbots. llvm-svn: 137223
-
Rafael Espindola authored
llvm-svn: 137217
-
Bob Wilson authored
llvm-svn: 137204
-
Andrew Trick authored
llvm-svn: 137203
-
Andrew Trick authored
SimplifyIndVar utility since it is required. llvm-svn: 137202
-
Andrew Trick authored
llvm-svn: 137199
-
Benjamin Kramer authored
llvm-svn: 137198
-
Andrew Trick authored
based on ScalarEvolution without changing the induction variable phis. This utility is the main tool of IndVarSimplifyPass, but the pass also restructures induction variables in strange ways that are sensitive to pass ordering. This provides a way for other loop passes to simplify new uses of induction variables created during transformation. The utility may be used by any pass that preserves ScalarEvolution. Soon LoopUnroll will use it. The net effect in this checkin is to cleanup the IndVarSimplify pass by factoring out the SimplifyIndVar algorithm into a standalone utility. llvm-svn: 137197
-
Andrew Trick authored
llvm-svn: 137195
-
Bruno Cardoso Lopes authored
llvm-svn: 137194
-
Peter Collingbourne authored
llvm-svn: 137193
-
Peter Collingbourne authored
llvm-svn: 137192
-
Andrew Trick authored
llvm-svn: 137191
-
Andrew Trick authored
These are not individual bug fixes. I had to rewrite a good chunk of the unroller to make it sane. I think it was getting lucky on trivial completely unrolled loops with no early exits. I included some fairly simple unit tests for partial unrolling. I didn't do much stress testing, so it may not be perfect, but should be usable now. llvm-svn: 137190
-
Owen Anderson authored
llvm-svn: 137189
-
Eric Christopher authored
llvm-svn: 137188
-
Eric Christopher authored
llvm-svn: 137187
-
Jakob Stoklund Olesen authored
llvm-svn: 137184
-
Jakob Stoklund Olesen authored
On Cortex-A8, we use the NEON v2f32 instructions for f32 arithmetic. For better latency, we also send D-register copies down the NEON pipeline by translating them to vorr instructions. This patch promotes even S-register copies to D-register copies when possible so they can also go down the NEON pipeline. Example: vldr.32 s0, LCPI0_0 loop: vorr d1, d0, d0 loop2: ... vadd.f32 d1, d1, d16 The vorr instruction looked like this after regalloc: %S2<def> = COPY %S0, %D1<imp-def> Copies involving odd S-registers, and copies that don't define the full D-register are left alone. llvm-svn: 137182
-
Owen Anderson authored
llvm-svn: 137180
-
Bruno Cardoso Lopes authored
llvm-svn: 137179
-
Eli Friedman authored
llvm-svn: 137177
-