- Apr 23, 2010
-
-
Chris Lattner authored
PR6888 with: $ llvm-as t.ll llvm-as: t.ll:2:29: error: expected metadata or 'align' store <3 x i32> %x, i32 1, i32 1>, <3 x i32>* %p ^ instead of: $ llvm-as t.ll llvm-as: llvm-svn: 102154
-
Chris Lattner authored
llvm-svn: 102153
-
Chris Lattner authored
that appear in the SCC as a result of inlining as candidates for inlining. Change this so that it *does* consider call sites that change from being indirect to being direct as a result of inlining. This allows it to completely "devirtualize" the testcase. llvm-svn: 102146
-
Jim Grosbach authored
extraction. This fixes PR5998. llvm-svn: 102144
-
Chris Lattner authored
arguments are handled with a new InlineFunctionInfo class. This makes it easier to extend InlineFunction to return more info in the future. llvm-svn: 102137
-
- Apr 22, 2010
-
-
Chris Lattner authored
define void @f3(void (i8*)* %__f) ssp { entry: call void %__f(i8* undef) unreachable } define void @f4(i8* %this) ssp align 2 { entry: call void @f3(void (i8*)* @f2) ssp ret void } The inliner is turning the indirect call to %__f into a direct call to F2. Make the call graph more precise when this happens. The inliner doesn't revisit call sites introduced by inlining, so there isn't an easy way to test for this, but a more precise callgraph is a good thing. llvm-svn: 102131
-
Devang Patel authored
llvm-svn: 102129
-
Dan Gohman authored
into SelectionDAGBuilder itself. llvm-svn: 102128
-
Devang Patel authored
llvm-svn: 102127
-
Dan Gohman authored
and into SelectionDAGBuilder and FastISel. llvm-svn: 102123
-
Chris Lattner authored
Fix RefreshCallGraph to use CGN->replaceCallEdge instead of hand rolling its own loop. replaceCallEdge properly maintains the reference counts of the nodes, fixing a crash exposed by the iterative callgraph stuff. llvm-svn: 102120
-
Chris Lattner authored
llvm-svn: 102119
-
Evan Cheng authored
- Some code refactoring. llvm-svn: 102111
-
Dan Gohman authored
llvm-svn: 102110
-
Dan Gohman authored
FunctionLoweringInfo, as it isn't SelectionDAG-specific. This isn't completely natural, as PHI node state is not per-function but rather per-basic-block, however there's currently no other convenient per-basic-block state to group it with. llvm-svn: 102109
-
Devang Patel authored
llvm-svn: 102106
-
Devang Patel authored
llvm-svn: 102104
-
Devang Patel authored
llvm-svn: 102102
-
Dan Gohman authored
assertion failures in extreme cases. llvm-svn: 102042
-
Dan Gohman authored
llvm-svn: 102041
-
Jakob Stoklund Olesen authored
This actually makes everything slower, but the plan is to have isel add <kill> flags the way it is already adding <dead> flags. Then LiveVariables can be removed again. When ignoring the time spent in LiveVariables, -regalloc=fast is now twice as fast as -regalloc=local. llvm-svn: 102034
-
- Apr 21, 2010
-
-
Evan Cheng authored
llvm-svn: 102027
-
Devang Patel authored
Add command line option to disable debug info printing in .s file. This option does not impact debug info generation and preservation through earlier compile starges. llvm-svn: 102012
-
Bob Wilson authored
GCCAS time for MultiSource/Benchmarks/ASCI_Purple/SMG2000. llvm-svn: 102009
-
Johnny Chen authored
llvm-svn: 102008
-
Jakob Stoklund Olesen authored
So far this is just a clone of -regalloc=local that has been lobotomized to run 25% faster. It drops the least-recently-used calculations, and is just plain stupid when it runs out of registers. The plan is to make this go even faster for -O0 by taking advantage of the short live intervals in unoptimized code. It should not be necessary to calculate liveness when most virtual registers are killed 2-3 instructions after they are born. llvm-svn: 102006
-
Devang Patel authored
Identify when a lexical scope is split in to multiple instruction ranges. Emit such ranges using DW_AT_ranges. llvm-svn: 102004
-
Dan Gohman authored
with ScalarEvolution's overall approach to pointer types. llvm-svn: 102003
-
Evan Cheng authored
optimization for non-leaf functions. This will be hooked up to gcc's -momit-leaf-frame-pointer option. rdar://7886181 llvm-svn: 101984
-
Evan Cheng authored
llvm-svn: 101979
-
Evan Cheng authored
llvm-svn: 101978
-
Dan Gohman authored
llvm-svn: 101977
-
Dan Gohman authored
llvm-svn: 101976
-
Dan Gohman authored
SelectionDAG directory and into a new Analysis.cpp file. llvm-svn: 101975
-
Johnny Chen authored
before reglist were not properly handled with respect to IT Block. Fix that by creating a new method ARMBasicMCBuilder::DoPredicateOperands() used by those instructions for disassembly. Add a test case. llvm-svn: 101974
-
rdar://6295824Chris Lattner authored
we have RefreshCallGraph detect when a function pass devirtualizes a call, and have CGSCCPassMgr iterate (up to a count) when this happens. This allows (in the example) GVN to devirtualize the call in foo, then the inliner to inline it away. This is not currently enabled because I haven't done any analysis on the (potentially substantial) code size or performance impact of doing this, and guess what, it exposes callgraph updating bugs in various passes. This is progress though, and you can play with it by passing -max-cg-scc-iterations=5 to opt. llvm-svn: 101973
-
Evan Cheng authored
extract_subreg / insert_subreg, etc. - Add support for more aggressive insert_subreg coalescing. llvm-svn: 101971
-
Dan Gohman authored
recursive callsites, inlining can reduce the number of calls by exponential factors, as it does in MultiSource/Benchmarks/Olden/treeadd. More involved heuristics will be needed. llvm-svn: 101969
-
Bill Wendling authored
fixes a bug (<rdar://problem/7880900>) in the JIT. This code wouldn't work: target triple = "x86_64-apple-darwin" define double @func(double %a) { %tmp1 = fmul double %a, 5.000000e-01 ; <double> [#uses=1] ret double %tmp1 } define i32 @main() nounwind { %1 = call double @func(double 4.770000e-04) ; <i64> [#uses=0] ret i32 0 } llvm-svn: 101965
-
Evan Cheng authored
llvm-svn: 101964
-