- May 20, 2008
-
-
Eli Friedman authored
as far as I can tell, and it fixes code like test/CodeGen/functions.c. (Whatever performance effect it might have, crashing on a construct like this isn't really acceptable; I've run into this multiple times.) llvm-svn: 51312
-
Eli Friedman authored
extend beyond the end of the function. I'm not completely sure this is the right way to fix this bug, so someone familiar with the parser should double-check. llvm-svn: 51311
-
Eli Friedman authored
llvm-svn: 51310
-
Eli Friedman authored
llvm-svn: 51309
-
Eli Friedman authored
llvm-svn: 51308
-
Eli Friedman authored
Sema. No codegen yet. llvm-svn: 51307
-
Evan Cheng authored
If local spiller optimization turns some instruction into an identity copy, it will be removed. If the output register happens to be dead (and source is obviously killed), transfer the kill / dead information to last use / def in the same MBB. llvm-svn: 51306
-
Evan Cheng authored
llvm-svn: 51305
-
Eli Friedman authored
llvm-svn: 51304
-
Matthijs Kooijman authored
llvm-svn: 51303
-
Chris Lattner authored
(add (sext x), cst) --> (sext (add x, cst')) (add (sext x), (sext y)) --> (sext (add int x, y)) (add double (sitofp x), fpcst) --> (sitofp (add int x, intcst)) (add double (sitofp x), (sitofp y)) --> (sitofp (add int x, y)) This generally reduces conversions. For example MiBench/telecomm-gsm gets these simplifications: HACK2: %tmp67.i142.i.i = sext i16 %tmp6.i141.i.i to i32 ; <i32> [#uses=1] %tmp23.i139.i.i = sext i16 %tmp2.i138.i.i to i32 ; <i32> [#uses=1] %tmp8.i143.i.i = add i32 %tmp67.i142.i.i, %tmp23.i139.i.i ; <i32> [#uses=3] HACK2: %tmp67.i121.i.i = sext i16 %tmp6.i120.i.i to i32 ; <i32> [#uses=1] %tmp23.i118.i.i = sext i16 %tmp2.i117.i.i to i32 ; <i32> [#uses=1] %tmp8.i122.i.i = add i32 %tmp67.i121.i.i, %tmp23.i118.i.i ; <i32> [#uses=3] HACK2: %tmp67.i.i190.i = sext i16 %tmp6.i.i189.i to i32 ; <i32> [#uses=1] %tmp23.i.i187.i = sext i16 %tmp2.i.i186.i to i32 ; <i32> [#uses=1] %tmp8.i.i191.i = add i32 %tmp67.i.i190.i, %tmp23.i.i187.i ; <i32> [#uses=3] HACK2: %tmp67.i173.i.i.i = sext i16 %tmp6.i172.i.i.i to i32 ; <i32> [#uses=1] %tmp23.i170.i.i.i = sext i16 %tmp2.i169.i.i.i to i32 ; <i32> [#uses=1] %tmp8.i174.i.i.i = add i32 %tmp67.i173.i.i.i, %tmp23.i170.i.i.i ; <i32> [#uses=3] HACK2: %tmp67.i152.i.i.i = sext i16 %tmp6.i151.i.i.i to i32 ; <i32> [#uses=1] %tmp23.i149.i.i.i = sext i16 %tmp2.i148.i.i.i to i32 ; <i32> [#uses=1] %tmp8.i153.i.i.i = add i32 %tmp67.i152.i.i.i, %tmp23.i149.i.i.i ; <i32> [#uses=3] HACK2: %tmp67.i.i.i.i = sext i16 %tmp6.i.i.i.i to i32 ; <i32> [#uses=1] %tmp23.i.i5.i.i = sext i16 %tmp2.i.i.i.i to i32 ; <i32> [#uses=1] %tmp8.i.i7.i.i = add i32 %tmp67.i.i.i.i, %tmp23.i.i5.i.i ; <i32> [#uses=3] This also fixes a bug in ComputeNumSignBits handling select and makes it more aggressive with and/or. llvm-svn: 51302
-
Eli Friedman authored
llvm-svn: 51301
-
Eli Friedman authored
llvm-svn: 51300
-
Ted Kremenek authored
Reclaim memory from chains of ScopedDecls, and reclaim memory for the initializers of EnumConstantDecls. llvm-svn: 51299
-
Ted Kremenek authored
llvm-svn: 51298
-
Ted Kremenek authored
Fixed a bug in ParmVarDecl::param_end(): Handle the case where there are no ParmVarDecls for a FunctionDecl, but its function prototype has formal arguments (can happen with typedefs). llvm-svn: 51297
-
Chris Lattner authored
llvm-svn: 51296
-
Chris Lattner authored
value as undef or untracked. llvm-svn: 51295
-
Ted Kremenek authored
llvm-svn: 51294
-
Dan Gohman authored
will become first-class types. llvm-svn: 51293
-
Dan Gohman authored
replaced is a PHI. This prevents it from inserting uses before defs in the case that it isn't a PHI and it depends on other instructions later in the block. This fixes the 447.dealII regression on x86-64. llvm-svn: 51292
-
Evan Cheng authored
llvm-svn: 51291
-
Dan Gohman authored
llvm-svn: 51290
-
Dan Gohman authored
llvm-svn: 51289
-
Ted Kremenek authored
llvm-svn: 51288
-
Steve Naroff authored
llvm-svn: 51287
-
Ted Kremenek authored
1) Sema::ParseAST now constructs a TranslationUnit object to own the top-level Decls, which releases the top-level Decls upon exiting ParseAST. 2) Bug fix: TranslationUnit::~TranslationUnit handles the case where a Decl is added more than once as a top-level Decl. 3) Decl::Destroy is now a virtual method, obviating the need for a special dispatch based on DeclKind. 3) FunctionDecl::Destroy now releases its Body using its Destroy method. 4) Added Stmt::Destroy and Stmt::DestroyChildren, which recursively delete the child ASTs of a Stmt and call their dstors. We may need to special case dstor/Destroy methods for particular Stmt subclasses that own other dynamically allocated objects besides AST nodes. 5) REGRESSION: We temporarily are not deallocating attributes; a FIXME is provided. llvm-svn: 51286
-
Eli Friedman authored
implement bitfield codegen (although I don't envy the person who implements it). This also prevents a crash on code like that from PR2309 (it's still broken, but it fails more gracefully). llvm-svn: 51285
-
Eli Friedman authored
llvm-svn: 51284
-
Eli Friedman authored
llvm-svn: 51282
-
Ted Kremenek authored
llvm-svn: 51281
-
Devang Patel authored
llvm-svn: 51280
-
Dan Gohman authored
code in SelectionDAG. llvm-svn: 51279
-
Ted Kremenek authored
Added Stmt::DestroyChildren, which will be used by the dstors of the subclasses of Stmt to recursively delete their child AST nodes. llvm-svn: 51278
-
- May 19, 2008
-
-
Dale Johannesen authored
$non_lazy_ptr's and $lazy_ptr's. llvm-svn: 51277
-
Eli Friedman authored
code). llvm-svn: 51276
-
Chris Lattner authored
llvm-svn: 51275
-
Chris Lattner authored
llvm-svn: 51274
-
Eli Friedman authored
it a few days to make sure there aren't any significant regressions. llvm-svn: 51273
-
Chris Lattner authored
produce a negative zero. llvm-svn: 51272
-