- Nov 29, 2009
-
-
Chris Lattner authored
llvm-svn: 90049
-
Chris Lattner authored
void test(int N, double* G) { long j; for (j = 1; j < N - 1; j++) G[j] = G[j] + G[j+1] + G[j-1]; } which we now compile to one load in the loop: LBB1_2: ## %bb movsd 16(%rsi,%rax,8), %xmm2 incq %rdx addsd %xmm2, %xmm1 addsd %xmm1, %xmm0 movapd %xmm2, %xmm1 movsd %xmm0, 8(%rsi,%rax,8) incq %rax cmpq %rcx, %rax jne LBB1_2 instead of: LBB1_2: ## %bb movsd 8(%rsi,%rax,8), %xmm0 addsd 16(%rsi,%rax,8), %xmm0 addsd (%rsi,%rax,8), %xmm0 movsd %xmm0, 8(%rsi,%rax,8) incq %rax cmpq %rcx, %rax jne LBB1_2 llvm-svn: 90048
-
Chris Lattner authored
void test9(int N, double* G) { long j; for (j = 1; j < N - 1; j++) G[j+1] = G[j] + G[j+1]; } llvm-svn: 90047
-
Chris Lattner authored
llvm-svn: 90046
-
- Nov 28, 2009
-
-
Nick Lewycky authored
PR5574. llvm-svn: 90045
-
Benjamin Kramer authored
llvm-svn: 90044
-
Benjamin Kramer authored
llvm-svn: 90043
-
Kovarththanan Rajaratnam authored
This patch adds a PUNCTUATOR macro (specialization of TOK) in TokenKinds.def and makes use of it in tok::getTokenSimpleSpelling. llvm-svn: 90042
-
Chris Lattner authored
handle cases like this: void test(int N, double* G) { long j; for (j = 1; j < N - 1; j++) G[j+1] = G[j] + G[j+1]; } where G[1] isn't live into the loop. llvm-svn: 90041
-
Kovarththanan Rajaratnam authored
llvm-svn: 90040
-
Chris Lattner authored
inserted instructions. No functionality change until someone starts using it. llvm-svn: 90039
-
Chris Lattner authored
way that getUnderlyingObject does it. This fixes the 'DecomposeGEPExpression and getUnderlyingObject disagree!' assertion on sqlite3. llvm-svn: 90038
-
Chris Lattner authored
if we don't have an address expression available in a predecessor, then model this as the value being clobbered at the end of the pred block instead of being modeled as a complete phi translation failure. This is important for PRE of loads because we want to see that the load is available in all but this predecessor, and complete phi translation failure results in not getting any information about predecessors. This doesn't do anything until I renable code insertion since PRE now sees that it is available in all but one predecessors, but can't insert the addressing in the predecessor that is missing it to eliminate the redundancy. llvm-svn: 90037
-
Nuno Lopes authored
btw, I believe that isMicrosoftInteger can go away; it's not read anywhere llvm-svn: 90036
-
Benjamin Kramer authored
llvm-svn: 90035
-
Benjamin Kramer authored
llvm-svn: 90034
-
Benjamin Kramer authored
llvm-svn: 90033
-
Benjamin Kramer authored
llvm-svn: 90032
-
Kovarththanan Rajaratnam authored
llvm-svn: 90031
-
Alexis Hunt authored
llvm-svn: 90030
-
Kovarththanan Rajaratnam authored
Move program actions implications to clang::InitializeFrontendOptions which already contains such logic. llvm-svn: 90029
-
Kovarththanan Rajaratnam authored
llvm-svn: 90028
-
Alexis Hunt authored
DeclarationName can't handle them yet, so right now Parser just errors out on them. llvm-svn: 90027
-
Eli Friedman authored
llvm-svn: 90026
-
Eli Friedman authored
GetCXXBaseClassOffset to actually pass the test. llvm-svn: 90025
-
Anders Carlsson authored
We always want to create a virtual function pointer entry if the path from the derived return value to the base overridden return value contains a virtual base class. llvm-svn: 90024
-
Anders Carlsson authored
llvm-svn: 90023
-
- Nov 27, 2009
-
-
Chris Lattner authored
to inform GVN about the newly inserted values. This fixes PR5631. llvm-svn: 90022
-
Anders Carlsson authored
llvm-svn: 90021
-
Anders Carlsson authored
llvm-svn: 90020
-
Chris Lattner authored
fixes PR5630 and sets the stage for the next phase of goodness (testcase pending). llvm-svn: 90019
-
Anders Carlsson authored
Add a new PrimaryBaseInfo struct that combines the record decl of a primary base with whether it's virtual or not. llvm-svn: 90018
-
Anders Carlsson authored
llvm-svn: 90017
-
Chris Lattner authored
llvm-svn: 90016
-
Nick Lewycky authored
for pointing this out. llvm-svn: 90015
-
Chris Lattner authored
llvm-svn: 90014
-
Chris Lattner authored
translation of add with immediate. This allows us to optimize this function: void test(int N, double* G) { long j; G[1] = 1; for (j = 1; j < N - 1; j++) G[j+1] = G[j] + G[j+1]; } to only do one load every iteration of the loop. llvm-svn: 90013
-
Chris Lattner authored
add two simple test cases we now optimize (to one load in the loop each) and one we don't (corresponding to the fixme I added yesterday). llvm-svn: 90012
-
Chris Lattner authored
llvm-svn: 90011
-
Chris Lattner authored
llvm-svn: 90009
-