- Nov 26, 2009
-
-
Bob Wilson authored
llvm-svn: 89968
-
Anders Carlsson authored
When adding an implicit destructor, make sure to mark it as virtual if it overrides existing destructors. llvm-svn: 89967
-
Anders Carlsson authored
llvm-svn: 89966
-
Anders Carlsson authored
llvm-svn: 89965
-
Anders Carlsson authored
Make the pure virtual methods map a set instead. llvm-svn: 89961
-
Chris Lattner authored
first expression as P+4+4*i which we considered to possibly alias P+4*j. Now we correctly analyze the former one as P+1+4*i. @test10 is a sanity test that verfies that we know that P+4+4*i != P+4*i. llvm-svn: 89960
-
Chris Lattner authored
previously already handled it at -m32 because there were no i32->i64 extensions for addressing. llvm-svn: 89959
-
Chris Lattner authored
llvm-svn: 89958
-
Chris Lattner authored
llvm-svn: 89957
-
Chris Lattner authored
llvm-svn: 89956
-
Chris Lattner authored
llvm-svn: 89955
-
Chris Lattner authored
to exercise this though. llvm-svn: 89954
-
Chris Lattner authored
only missing the one form (in this testcase). Dan, do you consider this example to be important? llvm-svn: 89953
-
Chris Lattner authored
allows us to compile the example in readme.txt into: LBB1_1: ## %bb movl 4(%rdx,%rax), %ecx movl %ecx, %esi imull (%rdx,%rax), %esi imull %esi, %ecx movl %esi, 8(%rdx,%rax) imull %ecx, %esi movl %ecx, 12(%rdx,%rax) movl %esi, 16(%rdx,%rax) imull %ecx, %esi movl %esi, 20(%rdx,%rax) addq $16, %rax cmpq $4000, %rax jne LBB1_1 instead of: LBB1_1: movl (%rdx,%rax), %ecx imull 4(%rdx,%rax), %ecx movl %ecx, 8(%rdx,%rax) imull 4(%rdx,%rax), %ecx movl %ecx, 12(%rdx,%rax) imull 8(%rdx,%rax), %ecx movl %ecx, 16(%rdx,%rax) imull 12(%rdx,%rax), %ecx movl %ecx, 20(%rdx,%rax) addq $16, %rax cmpq $4000, %rax jne LBB1_1 GCC (4.2) doesn't seem to be able to eliminate the loads in this testcase either, it generates: L2: movl (%rdx), %eax imull 4(%rdx), %eax movl %eax, 8(%rdx) imull 4(%rdx), %eax movl %eax, 12(%rdx) imull 8(%rdx), %eax movl %eax, 16(%rdx) imull 12(%rdx), %eax movl %eax, 20(%rdx) addl $4, %ecx addq $16, %rdx cmpl $1002, %ecx jne L2 llvm-svn: 89952
-
Chris Lattner authored
llvm-svn: 89951
-
Chris Lattner authored
llvm-svn: 89950
-
Gabor Greif authored
llvm-svn: 89949
-
Gabor Greif authored
this brings the error on clang -c foo.h -o - closer to clang -c foo.h -o /dev/null llvm-svn: 89948
-
Benjamin Kramer authored
llvm-svn: 89947
-
Daniel Dunbar authored
llvm-svn: 89946
-
Eli Friedman authored
llvm-svn: 89945
-
Eli Friedman authored
llvm-svn: 89944
-
Eli Friedman authored
operators, and destructors. Avoids generating declarations/definitions of trivial constructors/destructors, and makes sure the trivial copy assignment operator is generated when necessary. llvm-svn: 89943
-
Ted Kremenek authored
Improve diagnostics in ReturnStackAddressChecker for returning a stack-allocated block. Implements the rest of <rdar://problem/7387385>. llvm-svn: 89940
-
Ted Kremenek authored
llvm-svn: 89939
-
Eli Friedman authored
llvm-svn: 89938
-
Daniel Dunbar authored
llvm-svn: 89937
-
Daniel Dunbar authored
llvm-svn: 89936
-
Anders Carlsson authored
llvm-svn: 89935
-
Eli Friedman authored
instead of checking explicitly for an EnumConstantDecl. This folds references to constant integer VarDecls, which has two benefits: 1. Slightly smaller emitted code from emitting a constant instead of a load, and skipping emitting some constant globals. 2. Some code forgets to define static constant member variables; emitting a load instead of the value in that case leads to a link error. (Such programs are technically not well-formed, but in practice build with g++.) llvm-svn: 89934
-
Anders Carlsson authored
llvm-svn: 89933
-
Eli Friedman authored
llvm-svn: 89932
-
Eli Friedman authored
internal linkage. Fixes PR5433. llvm-svn: 89931
-
Anders Carlsson authored
llvm-svn: 89930
-
Ted Kremenek authored
the set of variables "captured" by a block. Until the analysis gets more sophisticated, for now we stop the retain count tracking of any objects (transitively) referenced by these variables. llvm-svn: 89929
-
Ted Kremenek authored
Teach RegionStoreManager::RemoveDeadBindings() about BlockDataRegions. Any VarRegion for a "captured" variable should also be considered live. llvm-svn: 89928
-
Ted Kremenek authored
Add iterators to BlockDataRegion that allow clients to iterate over the VarRegions for "captured" variables for a block. llvm-svn: 89927
-
Ted Kremenek authored
Added batch versions of GRState::scanReachableSymbols() so that clients can scan a collection of SVals or MemRegions all at once. llvm-svn: 89926
-
Anders Carlsson authored
Add a ThunkAdjustment struct which holds a non-virtual and a virtual adjustment offset. Start using it. General cleanup in Mangle.cpp. llvm-svn: 89925
-
Ted Kremenek authored
Enhance LiveVariables to understand that blocks can extend the liveness of a variable by "capturing" them in a BlockExpr. This required two changes: 1) Added 'getReferencedgetReferencedBlockVars()' to AnalysisContext so that clients can iterate over the "captured" variables in a block. 2) Modified LiveVariables to take an AnalysisContext& in its constructor and to call getReferencedgetReferencedBlockVars() when it processes a BlockExpr*. llvm-svn: 89924
-