- Feb 01, 2010
-
-
Mon P Wang authored
type is the same as the element type of the vector. EXTRACT_VECTOR_ELT can be used to extended the width of an integer type. This fixes a bug for Generic/vector-casts.ll on a ppc750. llvm-svn: 94990
-
Dan Gohman authored
llvm-svn: 94989
-
John McCall authored
deduction failed. Right now there's a very vague diagnostic for most cases and a good diagnostic for incomplete deduction. llvm-svn: 94988
-
Dan Gohman authored
cases, and implement target-independent folding rules for alignof and offsetof. Also, reassociate reassociative operators when it leads to more folding. Generalize ScalarEvolution's isOffsetOf to recognize offsetof on arrays. Rename getAllocSizeExpr to getSizeOfExpr, and getFieldOffsetExpr to getOffsetOfExpr, for consistency with analagous ConstantExpr routines. Make the target-dependent folder promote GEP array indices to pointer-sized integers, to make implicit casting explicit and exposed to subsequent folding. And add a bunch of testcases for this new functionality, and a bunch of related existing functionality. llvm-svn: 94987
-
rdar://7590304Chris Lattner authored
of objc message send was getting marked arm_apcscc, but the prototype isn't. This is fine at runtime because objcmsgsend is implemented in assembly. Only turn a mismatched caller and callee into 'unreachable' if the callee is a definition. llvm-svn: 94986
-
rdar://7590304Chris Lattner authored
case, instcombine can't zap the invoke for fear of changing the CFG. However, we have to do something to prevent the next iteration of instcombine from inserting another store -> undef before the invoke thereby getting into infinite iteration between dead store elim and store insertion. Just zap the callee to null, which will prevent the next iteration from doing anything. llvm-svn: 94985
-
Bob Wilson authored
The testcase from pr6198 does not crash for me -- I don't know what's up with that -- so I'm not adding it to the tests. llvm-svn: 94984
-
Dan Gohman authored
llvm-svn: 94982
-
Dan Gohman authored
array types as well as struct types, and which accepts arbitrary Constant indicies. llvm-svn: 94981
-
Bruno Cardoso Lopes authored
llvm-svn: 94977
-
Zhongxing Xu authored
in the analyzer. WIP. llvm-svn: 94976
-
Sean Callanan authored
a buildbot. Removed. llvm-svn: 94975
-
Sean Callanan authored
fleshed out the .exports file. I still have to fix several details of operand parsing, but the basic functionality is there and usable. llvm-svn: 94974
-
Zhongxing Xu authored
llvm-svn: 94973
-
Sam Weinig authored
llvm-svn: 94972
-
John McCall authored
llvm-svn: 94971
-
Evan Cheng authored
llvm-svn: 94970
-
Bruno Cardoso Lopes authored
llvm-svn: 94969
-
- Jan 31, 2010
-
-
Sebastian Redl authored
Add VarDecl::isThisDeclarationADefinition(), which properly encapsulates the logic for when a variable declaration is a (possibly tentativ) definition. Add a few functions building on this, and shift C tentative definition handling over to this new functionality. This shift also kills the Sema::TentativeDefinitions map and instead simply stores all declarations in the renamed list. The correct handling for multiple tentative definitions is instead shifted to the final walk of the list. llvm-svn: 94968
-
Eli Friedman authored
not quite sure what we want to do about the AST representation; comments welcome. llvm-svn: 94967
-
Eli Friedman authored
llvm-svn: 94965
-
Anders Carlsson authored
llvm-svn: 94964
-
Anders Carlsson authored
llvm-svn: 94963
-
Chandler Carruth authored
llvm-svn: 94958
-
Chandler Carruth authored
llvm-svn: 94957
-
Chandler Carruth authored
change. PS: I'm under the impression formatting-only patches don't need pre-commit review, but feel free to yell at me if I should post these first! =D llvm-svn: 94956
-
Johnny Chen authored
llvm-svn: 94955
-
Chandler Carruth authored
the lack of documentation, this matches the behavior of GCC. llvm-svn: 94954
-
Chandler Carruth authored
arguments. This both prevents meaningless checks on these arguments and ensures that they are represented as an expression by the instantiation. Cleaned up and added standard text to the relevant test case. Also started adding tests for *rejected* cases. At least one FIXME here where (I think) we allow something we shouldn't. More to come in the area of rejecting crazy arguments with decent diagnostics. Suggestions welcome for still better diagnostics on these errors! llvm-svn: 94953
-
Douglas Gregor authored
(necessarily simultaneous) changes: - CXXBaseOrMemberInitializer now contains only a single initializer rather than a set of initialiation arguments + a constructor. The single initializer covers all aspects of initialization, including constructor calls as necessary but also cleanup of temporaries created by the initializer (which we never handled before!). - Rework + simplify code generation for CXXBaseOrMemberInitializers, since we can now just emit the initializer as an initializer. - Switched base and member initialization over to the new initialization code (InitializationSequence), so that it - Improved diagnostics for the new initialization code when initializing bases and members, to match the diagnostics produced by the previous (special-purpose) code. - Simplify the representation of type-checked constructor initializers in templates; instead of keeping the fully-type-checked AST, which is rather hard to undo at template instantiation time, throw away the type-checked AST and store the raw expressions in the AST. This simplifies instantiation, but loses a little but of information in the AST. - When type-checking implicit base or member initializers within a dependent context, don't add the generated initializers into the AST, because they'll look like they were explicit. - Record in CXXConstructExpr when the constructor call is to initialize a base class, so that CodeGen does not have to infer it from context. This ensures that we call the right kind of constructor. There are also a few "opportunity" fixes here that were needed to not regress, for example: - Diagnose default-initialization of a const-qualified class that does not have a user-declared default constructor. We had this diagnostic specifically for bases and members, but missed it for variables. That's fixed now. - When defining the implicit constructors, destructor, and copy-assignment operator, set the CurContext to that constructor when we're defining the body. llvm-svn: 94952
-
Benjamin Kramer authored
llvm-svn: 94951
-
Evan Cheng authored
Change TAILJMP's to be varargs and transfer implicit uses over from TCRETURN's. Otherwise the missing uses can make post-regalloc scheduling do bad things. This fixes 403.gcc. llvm-svn: 94950
-
Evan Cheng authored
llvm-svn: 94949
-
Chandler Carruth authored
when implicitly supplied to the injected class name. llvm-svn: 94948
-
Chandler Carruth authored
explicit '&' by introducing an address-of operator prior to checking the argument's type. llvm-svn: 94947
-
Evan Cheng authored
llvm-svn: 94946
-
Eli Friedman authored
llvm-svn: 94945
-
Eli Friedman authored
llvm-svn: 94944
-
Eli Friedman authored
llvm-svn: 94943
-
Anders Carlsson authored
When performing a derived-to-base cast that we know will not change the offset, we don't need to null check the input pointer. Fixes PR5965. llvm-svn: 94942
-