- Jan 18, 2008
-
-
Steve Naroff authored
Sema::FinalizeDeclaratorGroup()...make sure we emit an diagnostic for tentative definitions with incomplete types. Touch up all test cases that are effected. llvm-svn: 46152
-
Ted Kremenek authored
the position *before* a statement, regardless of whether we are doing a forward or backwards analysis. llvm-svn: 46151
-
Ted Kremenek authored
an iterator, since the implementation returned an iterator that pointed to a different node! Renamed this implementation to SlimFind() so that users do not expect it to return an iterator (it is a more efficient implementation than returning an iterator if the user just wants to find the value of a key). Added a FIXME to implement ImmutableMap::find() that returns an iterator. llvm-svn: 46150
-
Dale Johannesen authored
as weak globals rather than commons. While not wrong, this change tickled a latent bug in Darwin's strip, so revert it for now as a workaround. llvm-svn: 46147
-
Dale Johannesen authored
as weak globals rather than commons. While not wrong, this change tickled a latent bug in Darwin's strip, so revert it for now as a workaround. llvm-svn: 46144
-
- Jan 17, 2008
-
-
Ted Kremenek authored
is because GNU-style Statement-expressions cause the last statement in the statement-expression to act like an expression. We now have two notions: block-level statements and block-level expressions. The former are all Stmt* that appear in the list of statements in CFGBlocks. The latter is the subset of the former; these block-level statements are used as subexpressions somewhere in the AST. CFG::isBlockExpr() returns true for the latter, not the former (previously isBlockExpr() always returned true for non-Expr Stmt*). Modified the LiveVariables analysis to also track liveness state for block-level expressions (using the updated definition of block-level expressions). Modified the dataflow solver so that when it records values for block-level statements, it records the dataflow value *before* the transfer function for a Stmt* is evaluated (not after). This is more in sync in what clients will want. Modified CFGStmtVisitor to record the current block-level statement. llvm-svn: 46143
-
Scott Michel authored
Fixed CellSPU's A-form (local store) address mode, so that all globals, externals, constant pool and jump table symbols are now wrapped within a SPUISD::AFormAddr pseudo-instruction. This now identifies all local store memory addresses, although it requires a bit of legerdemain during instruction selection to properly select loads to and stores from local store, properly generating "LQA" instructions. Also added mul_ops.ll test harness for exercising integer multiplication. llvm-svn: 46142
-
Fariborz Jahanian authored
llvm-svn: 46141
-
Chris Lattner authored
1. Legalize now always promotes truncstore of i1 to i8. 2. Remove patterns and gunk related to truncstore i1 from targets. 3. Rename the StoreXAction stuff to TruncStoreAction in TLI. 4. Make the TLI TruncStoreAction table a 2d table to handle from/to conversions. 5. Mark a wide variety of invalid truncstores as such in various targets, e.g. X86 currently doesn't support truncstore of any of its integer types. 6. Add legalize support for truncstores with invalid value input types. 7. Add a dag combine transform to turn store(truncate) into truncstore when safe. The later allows us to compile CodeGen/X86/storetrunc-fp.ll to: _foo: fldt 20(%esp) fldt 4(%esp) faddp %st(1) movl 36(%esp), %eax fstps (%eax) ret instead of: _foo: subl $4, %esp fldt 24(%esp) fldt 8(%esp) faddp %st(1) fstps (%esp) movl 40(%esp), %eax movss (%esp), %xmm0 movss %xmm0, (%eax) addl $4, %esp ret llvm-svn: 46140
-
Chris Lattner authored
llvm-svn: 46139
-
Steve Naroff authored
Improve diagnostic wording... llvm-svn: 46138
-
Ted Kremenek authored
values for the block-level expressions. Modified 'LiveVariables' to provide the option to clients to record liveness information for block-level expressions (using the above feature). Modified 'DeadStores' to conform to the new interface of 'LiveVariables'. Modified 'GRConstants' to compute liveness information for block-level expressions. llvm-svn: 46137
-
Nate Begeman authored
llvm-svn: 46136
-
Nate Begeman authored
llvm-svn: 46135
-
Ted Kremenek authored
llvm-svn: 46134
-
Ted Kremenek authored
llvm-svn: 46133
-
Nate Begeman authored
__builtin_overload takes 2 or more arguments: 0) a non-zero constant-expr for the number of arguments the overloaded functions will take 1) the arguments to pass to the matching overloaded function 2) a list of functions to match. The return type of __builtin_overload is inferred from the function whose args match the types of the arguments passed to the builtin. For example: float a; float sinf(float); int sini(int); float b = __builtin_overload(1, a, sini, sinf); Says that we are overloading functions that take one argument, and trying to pass an argument of the same type as 'a'. sini() does not match since it takes and argument of type int. sinf does match, so at codegen time this will turn into float b = sinf(a); llvm-svn: 46132
-
Fariborz Jahanian authored
size in accordance with how rewriter synthesizes method name. llvm-svn: 46131
-
Ted Kremenek authored
and not just the key value when comparing trees. To do this we added data_type and data_type_ref to the ImutContainerInfo trait classes. For values stored in the tree that do not have separate key and data components, data_type is simply a typedef of bool, and isDataEqual() always evaluates to true. This allows us to support both ImmutableSet and ImmutableMap using the same underlying logic. llvm-svn: 46130
-
Ted Kremenek authored
Refactored the use of this method into both the Sema module and Analysis module, which were using their own static functions that did the same thing. llvm-svn: 46129
-
Chris Lattner authored
llvm-svn: 46128
-
Evan Cheng authored
llvm-svn: 46127
-
Chris Lattner authored
llvm-svn: 46126
-
Chris Lattner authored
and switch various codegen pieces and the X86 backend over to using it. * Add some comments to SelectionDAGNodes.h * Introduce a second argument to FP_ROUND, which indicates whether the FP_ROUND changes the value of its input. If not it is safe to xform things like fp_extend(fp_round(x)) -> x. llvm-svn: 46125
-
Chris Lattner authored
llvm-svn: 46124
-
Tanya Lattner authored
llvm-svn: 46120
-
Tanya Lattner authored
Regenerate configure with 2.60. llvm-svn: 46119
-
Evan Cheng authored
llvm-svn: 46113
-
Devang Patel authored
llvm-svn: 46112
-
Evan Cheng authored
and the spill is its kill. However, if the local allocator has determined the register has not been modified (possible when its value was reloaded), it would not issue a restore. In that case, mark the last use of the virtual register as kill. llvm-svn: 46111
-
Fariborz Jahanian authored
when creating its type. llvm-svn: 46109
-
Chris Lattner authored
promoted functions. This is important for varargs calls in particular. Thanks to duncan for providing a great testcase. llvm-svn: 46108
-
Seo Sanghyeon authored
llvm-svn: 46107
-
Ted Kremenek authored
state. llvm-svn: 46106
-
Steve Naroff authored
Declarator::clear(): Null out variable after it's been deleted. This avoids a double free (which is good:-) Bug submitted by Eli. llvm-svn: 46105
-
Evan Cheng authored
llvm-svn: 46104
-
Steve Naroff authored
Simplify comment. llvm-svn: 46103
-
Steve Naroff authored
Type::isArithmeticType(): disallow incomplete enum decls. Bug submitted by Eli. llvm-svn: 46102
-
Ted Kremenek authored
map. This will allow us to quickly prune them from maps without searching the entire map. llvm-svn: 46101
-
Ted Kremenek authored
to sort sub-expressions before Block-level expressions. llvm-svn: 46100
-