Owen Anderson
75a244d6eb
Change ValueTable to use a DenseMap for mapping expressions to value numbers.
...
This results in a slight speedup for 403.gcc.
llvm-svn: 40040
2007-07-19 06:13:15 +00:00
Devang Patel
ef43253e2e
Set up ground work to verify preserved analysis info.
...
llvm-svn: 40039
2007-07-19 05:36:09 +00:00
Chris Lattner
2ac26568d4
silence a warning by treating ocuvectors the same as vectors.
...
llvm-svn: 40037
2007-07-19 05:13:51 +00:00
Owen Anderson
6a4ff8549b
Move some sets and maps to SmallPtrSet and DenseMap respectively. This
...
reduces the time to optimize 403.gcc from 17.6s to 16.4s.
llvm-svn: 40036
2007-07-19 03:32:44 +00:00
Devang Patel
186e0d8b0a
After a basic block is split into two parts,
...
second part dominates all the blocks dominated
by original basic block. And first part dominates
second part.
llvm-svn: 40035
2007-07-19 02:29:24 +00:00
Devang Patel
de5901523c
Now this temp. fix is not required.
...
llvm-svn: 40034
2007-07-19 02:22:21 +00:00
Evan Cheng
94b5a80b93
Change instruction description to split OperandList into OutOperandList and
...
InOperandList. This gives one piece of important information: # of results
produced by an instruction.
An example of the change:
def ADD32rr : I<0x01, MRMDestReg, (ops GR32:$dst, GR32:$src1, GR32:$src2),
"add{l} {$src2, $dst|$dst, $src2}",
[(set GR32:$dst, (add GR32:$src1, GR32:$src2))]>;
=>
def ADD32rr : I<0x01, MRMDestReg, (outs GR32:$dst), (ins GR32:$src1, GR32:$src2),
"add{l} {$src2, $dst|$dst, $src2}",
[(set GR32:$dst, (add GR32:$src1, GR32:$src2))]>;
llvm-svn: 40033
2007-07-19 01:14:50 +00:00
Steve Naroff
fbd098332c
Work towards fixing crasher with compound literals...
...
Before this commit, we crashed in ParseBinOp...
[dylan:~/llvm/tools/clang] admin% ../../Debug/bin/clang -parse-ast-check compound_literal.c
SemaExpr.cpp:1298: failed assertion `(rhs != 0) && "ParseBinOp(): missing right expression"'
With this commit, we still crash in the newly added action ParseCompoundLiteral (which is progress:-)
[dylan:~/llvm/tools/clang] admin% ../../Debug/bin/clang -parse-ast-check compound_literal.c
SemaExpr.cpp:478: failed assertion `(Op != 0) && "ParseCompoundLiteral(): missing expression"'
The crash go away once the actions return AST nodes. I will do this in a separate commit.
llvm-svn: 40032
2007-07-19 01:06:55 +00:00
Evan Cheng
22b0c344db
Only adjust esp around calls in presence of alloca.
...
llvm-svn: 40030
2007-07-19 00:42:58 +00:00
Chris Lattner
5fbd7e0264
Fix a crasher that Neil reported: Sema::GetTypeForDeclarator should never
...
return a null type. If there is an error parsing the type, pick a new type
for error recovery purposes.
llvm-svn: 40029
2007-07-19 00:42:40 +00:00
Evan Cheng
7b5b06805a
Only adjust esp around calls in presence of alloca.
...
llvm-svn: 40028
2007-07-19 00:42:05 +00:00
Chris Lattner
5e62929fed
Make sure to initialize an ivar, patch by Benoit Boissinot.
...
llvm-svn: 40027
2007-07-19 00:11:19 +00:00
Chris Lattner
5c98379b1c
Correctly respect C99 5.1.1.2p4 when searching for the first '(' of
...
a function-like macro invocation. Patch contributed by Neil Booth.
llvm-svn: 40026
2007-07-19 00:07:36 +00:00
Devang Patel
8a1d1ac925
Fix typo.
...
llvm-svn: 40025
2007-07-18 23:50:19 +00:00
Devang Patel
bb8ea8cefc
Fix dominator info update to accommodate CFG changes.
...
This fixes PR1559.
llvm-svn: 40024
2007-07-18 23:48:20 +00:00
Devang Patel
86dff8f8be
New test.
...
llvm-svn: 40023
2007-07-18 23:47:02 +00:00
Evan Cheng
a8d152a22a
Add comment.
...
llvm-svn: 40022
2007-07-18 23:34:48 +00:00
Evan Cheng
dcc3451f8a
New test.
...
llvm-svn: 40020
2007-07-18 21:39:16 +00:00
Evan Cheng
8941071ae1
Use MOV instead of LEA to restore ESP if callee-saved frame size is 0; if previous instruction updates esp, fold it in.
...
llvm-svn: 40018
2007-07-18 21:26:06 +00:00
Dan Gohman
68659280fa
Add constructor overloads for LoadInst and StoreInst that insert at the
...
end of a BasicBlock and have an alignment parameter.
llvm-svn: 40016
2007-07-18 20:51:11 +00:00
Dan Gohman
776962a97a
Implement initial memory alignment awareness for SSE instructions. Vector loads
...
and stores that have a specified alignment of less than 16 bytes now use
instructions that support misaligned memory references.
llvm-svn: 40015
2007-07-18 20:23:34 +00:00
Owen Anderson
e21f270858
Fix an issue where assignments that caused a SmallPtrSet to become non-small
...
would result in calling realloc() on a null pointer. Instead, if we encounter
this situation, make a normal call to malloc().
llvm-svn: 40014
2007-07-18 19:54:15 +00:00
Chris Lattner
0f0019c36e
implement i-c-e correct evaluation for sizeof/alignof, remove some obsolete fixme's.
...
llvm-svn: 40012
2007-07-18 18:38:36 +00:00
Chris Lattner
647fb22611
implement sizeof/alignof support for structs, unions and complex.
...
This allows us to compile this:
struct abc { char A; double D; };
int foo() {
return sizeof(struct abc);
return __alignof__(struct abc);
}
Into:
ret i32 16
ret i32 8
llvm-svn: 40010
2007-07-18 18:26:58 +00:00
Chris Lattner
3f8c6e6e74
implement codegen support for sizeof/alignof
...
llvm-svn: 40009
2007-07-18 18:12:07 +00:00
Steve Naroff
91fcddb5cc
First round of extended vector support. Here is an overview...
...
- added ocu_vector_type attribute, Sema::HandleOCUVectorTypeAttribute().
- added new AST node, OCUVectorType, a subclass of VectorType.
- added ASTContext::getOCUVectorType.
- changed ASTContext::convertToVectorType() to ASTContext::getVectorType(). This is
unrelated to extended vectors, however I was in the vicinity and it was on my todo list.
Added a FIXME to Sema::HandleVectorTypeAttribute to deal with converting complex types.
llvm-svn: 40007
2007-07-18 18:00:27 +00:00
Chris Lattner
53cfe80407
initial layout support for structures and unions. This isn't actually
...
hooked up to anything, so it's not very useful yet.
llvm-svn: 40006
2007-07-18 17:52:12 +00:00
Chris Lattner
b5d3f84459
add accessors
...
llvm-svn: 40005
2007-07-18 17:50:10 +00:00
Dan Gohman
a7b65c30a3
It's not necessary to do rounding for alloca operations when the requested
...
alignment is equal to the stack alignment.
llvm-svn: 40004
2007-07-18 16:29:46 +00:00
Chris Lattner
bd27073f2a
Cast to void is valid, patch by Benoit Boissinot
...
llvm-svn: 40003
2007-07-18 16:00:06 +00:00
Evan Cheng
f314055706
New entry.
...
llvm-svn: 39998
2007-07-18 08:21:49 +00:00
Chris Lattner
9c016770bb
teach -stats about new types
...
llvm-svn: 39996
2007-07-18 05:50:59 +00:00
Reid Spencer
c49a5b9952
Fix a sys::Path API error caught by a gcc 4.2 warning.
...
llvm-svn: 39995
2007-07-18 05:27:33 +00:00
Chris Lattner
d7372ba817
add a note Neil pointed out
...
llvm-svn: 39994
2007-07-18 05:21:20 +00:00
Chris Lattner
6cc9a08734
Work around a bogus gcc 4.2 warning.
...
llvm-svn: 39993
2007-07-18 04:51:57 +00:00
Reid Spencer
2e5b07f41d
Fix this test to not rely on the path but to use the
...
configured llvm-gcc instead.
llvm-svn: 39992
2007-07-18 04:37:24 +00:00
Reid Spencer
ead26b672b
The property is svn:executable not svn:execute.
...
llvm-svn: 39991
2007-07-18 04:26:05 +00:00
Nick Lewycky
f433a7f1a6
Alphabetize. Document -mlimit parameter.
...
llvm-svn: 39990
2007-07-18 04:24:20 +00:00
Chris Lattner
46eeb22fec
Add initial switch stmt support, patch by Anders Carlsson!
...
llvm-svn: 39989
2007-07-18 02:28:47 +00:00
Owen Anderson
a603a80607
Turn on FastDSE by default.
...
Note: FastDSE now equals or exceeds the results of old DSE on all of SPEC2000 and SPEC2006. Unless major problems
show up in the testers, it will likely completely replace old DSE in the near future.
llvm-svn: 39986
2007-07-17 21:59:21 +00:00
Evan Cheng
97b5dc63d7
Fold prologue esp update when possible.
...
llvm-svn: 39984
2007-07-17 21:26:42 +00:00
Andrew Lenharth
7c14110757
support poolalloc as checked out from svn
...
llvm-svn: 39983
2007-07-17 20:37:35 +00:00
Evan Cheng
bd9b21f1c5
Change sroa threshold back.
...
llvm-svn: 39980
2007-07-17 20:07:21 +00:00
Evan Cheng
f9ef70560e
Dead code.
...
llvm-svn: 39979
2007-07-17 20:01:19 +00:00
Evan Cheng
b2bb4b4040
Make sure not to break eh_return.
...
llvm-svn: 39978
2007-07-17 18:40:47 +00:00
Evan Cheng
27ba94bf3b
Update.
...
llvm-svn: 39977
2007-07-17 18:39:45 +00:00
Evan Cheng
5184c9d787
Fix test.
...
llvm-svn: 39976
2007-07-17 18:16:09 +00:00
Tanya Lattner
8817a170f7
Don't use * in XFAIL line unless you want it to XFAIL on everything. I don't believe you can use true regular expressions here. It will just look for those keywords. Please test this on sparc and see if they still are xfailed.
...
llvm-svn: 39975
2007-07-17 18:08:32 +00:00
Evan Cheng
67e2e22e97
Missed the case where alloca is used but the stack size (not including callee-saved portion) is zero. Thanks Dan.
...
llvm-svn: 39974
2007-07-17 18:03:34 +00:00
Chris Lattner
59fd8012a0
strtod is more portable than strtof apparently. Instead of making this conditional,
...
just always use strtod. This is temporary code anyway.
llvm-svn: 39972
2007-07-17 15:27:33 +00:00