- Apr 22, 2010
-
-
Dan Gohman authored
assertion failures in extreme cases. llvm-svn: 102042
-
Dan Gohman authored
llvm-svn: 102041
-
Anders Carlsson authored
llvm-svn: 102040
-
John McCall authored
in a throw expression. Use EmitAnyExprToMem to emit the throw expression, which magically elides the final copy-constructor call (which raises a new strict-compliance bug, but baby steps). Give __cxa_throw a destructor pointer if the exception type has a non-trivial destructor. llvm-svn: 102039
-
Douglas Gregor authored
method parameter, provide a note pointing at the parameter itself so the user does not have to manually look for the function/method being called and match up parameters to arguments. For example, we now get: t.c:4:5: warning: incompatible pointer types passing 'long *' to parameter of type 'int *' [-pedantic] f(long_ptr); ^~~~~~~~ t.c:1:13: note: passing argument to parameter 'x' here void f(int *x); ^ llvm-svn: 102038
-
Anders Carlsson authored
llvm-svn: 102037
-
Dan Gohman authored
the alignment is a power of 2, even in the esoteric case of a vector element which does not have a power-of-2 sizeof value. llvm-svn: 102036
-
Douglas Gregor authored
during message sends) over to the new initialization code and away from the C-only CheckSingleAssignmentConstraints. The enables the use of C++ types in method parameters and message arguments, as well as unifying more initialiation code overall. llvm-svn: 102035
-
Jakob Stoklund Olesen authored
This actually makes everything slower, but the plan is to have isel add <kill> flags the way it is already adding <dead> flags. Then LiveVariables can be removed again. When ignoring the time spent in LiveVariables, -regalloc=fast is now twice as fast as -regalloc=local. llvm-svn: 102034
-
Devang Patel authored
llvm-svn: 102033
-
Nick Kledzik authored
llvm-svn: 102032
-
Douglas Gregor authored
Objective-C++ have a more complex grammar than in Objective-C (surprise!), because (1) The receiver of an instance message can be a qualified name such as ::I or identity<I>::type. (2) Expressions in C++ can start with a type. The receiver grammar isn't actually ambiguous; it just takes a bit of work to parse past the type before deciding whether we have a type or expression. We do this in two places within the grammar: once for message sends and once when we're determining whether a []'d clause in an initializer list is a message send or a C99 designated initializer. This implementation of Objective-C++ message sends contains one known extension beyond GCC's implementation, which is to permit a typename-specifier as the receiver type for a class message, e.g., [typename compute_receiver_type<T>::type method]; Note that the same effect can be achieved in GCC by way of a typedef, e.g., typedef typename computed_receiver_type<T>::type Computed; [Computed method]; so this is merely a convenience. Note also that message sends still cannot involve dependent types or values. llvm-svn: 102031
-
Nick Kledzik authored
llvm-svn: 102030
-
- Apr 21, 2010
-
-
Evan Cheng authored
llvm-svn: 102027
-
Douglas Gregor authored
Objective-C class message expression into a type from the parser (which was doing so in two places) to Action::getObjCMessageKind() which, in the case of Sema, reduces the number of name lookups we need to perform. llvm-svn: 102026
-
Anders Carlsson authored
llvm-svn: 102025
-
Douglas Gregor authored
to reduce nesting. No functionality change. llvm-svn: 102022
-
Douglas Gregor authored
sends. Major changes include: - Expanded the interface from two actions (ActOnInstanceMessage, ActOnClassMessage), where ActOnClassMessage also handled sends to "super" by checking whether the identifier was "super", to three actions (ActOnInstanceMessage, ActOnClassMessage, ActOnSuperMessage). Code completion has the same changes. - The parser now resolves the type to which we are sending a class message, so ActOnClassMessage now accepts a TypeTy* (rather than an IdentifierInfo *). This opens the door to more interesting types (for Objective-C++ support). - Split ActOnInstanceMessage and ActOnClassMessage into parser action functions (with their original names) and semantic functions (BuildInstanceMessage and BuildClassMessage, respectively). At present, this split is onyl used by ActOnSuperMessage, which decides which kind of super message it has and forwards to the appropriate Build*Message. In the future, Build*Message will be used by template instantiation. - Use getObjCMessageKind() within the disambiguation of Objective-C message sends vs. array designators. Two notes about substandard bits in this patch: - There is some redundancy in the code in ParseObjCMessageExpr and ParseInitializerWithPotentialDesignator; this will be addressed shortly by centralizing the mapping from identifiers to type names for the message receiver. - There is some #if 0'd code that won't likely ever be used---it handles the use of 'super' in methods whose class does not have a superclass---but could be used to model GCC's behavior more closely. This code will die in my next check-in, but I want it in Subversion. llvm-svn: 102021
-
Anders Carlsson authored
Keep tack of whether a base in an InitializedEntity is an inherited virtual base or not. Use this in CheckConstructorAccess. llvm-svn: 102020
-
Daniel Dunbar authored
exceeds the minimum ABI alignment. llvm-svn: 102019
-
Daniel Dunbar authored
llvm-svn: 102018
-
Daniel Dunbar authored
llvm-svn: 102016
-
Daniel Dunbar authored
llvm-svn: 102015
-
Daniel Dunbar authored
non-bit-fields). llvm-svn: 102014
-
Devang Patel authored
Add command line option to disable debug info printing in .s file. This option does not impact debug info generation and preservation through earlier compile starges. llvm-svn: 102012
-
Fariborz Jahanian authored
property synthesis is using a super class ivar. llvm-svn: 102011
-
Anders Carlsson authored
Pass the InitializedEntity to Sema::CheckConstructorAccess and use it to report different diagnostics depending on which entity is being initialized. llvm-svn: 102010
-
Bob Wilson authored
GCCAS time for MultiSource/Benchmarks/ASCI_Purple/SMG2000. llvm-svn: 102009
-
Johnny Chen authored
llvm-svn: 102008
-
Anders Carlsson authored
llvm-svn: 102007
-
Jakob Stoklund Olesen authored
So far this is just a clone of -regalloc=local that has been lobotomized to run 25% faster. It drops the least-recently-used calculations, and is just plain stupid when it runs out of registers. The plan is to make this go even faster for -O0 by taking advantage of the short live intervals in unoptimized code. It should not be necessary to calculate liveness when most virtual registers are killed 2-3 instructions after they are born. llvm-svn: 102006
-
Fariborz Jahanian authored
llvm-svn: 102005
-
Devang Patel authored
Identify when a lexical scope is split in to multiple instruction ranges. Emit such ranges using DW_AT_ranges. llvm-svn: 102004
-
Dan Gohman authored
with ScalarEvolution's overall approach to pointer types. llvm-svn: 102003
-
Duncan Sands authored
llvm-svn: 102001
-
Benjamin Kramer authored
llvm-svn: 101999
-
John McCall authored
because EmitBranch actually clears the insert point. This version actually accomplishes what I initially wanted. llvm-svn: 101998
-
John McCall authored
(if there's a current block). The chief advantage of doing this is that it lets us pick blocks (e.g. EH blocks) to push to the end of the function so that fallthrough happens consistently --- i.e. it gives us the flexibility of ordering blocks as we please without having to change the order in which we generate code. There are standard (?) optimization passes which can do some of that for us, but better to generate reasonable code to begin with. llvm-svn: 101997
-
John McCall authored
just to save the current insertion state! This change significantly simplifies the IR CFG in exceptions code. llvm-svn: 101996
-
Chris Lattner authored
llvm-svn: 101995
-