Zhongxing Xu
144d7554c4
Use ASTContext::getCanonicalType() to get TypedRegion's type.
...
llvm-svn: 58247
2008-10-27 13:35:03 +00:00
Duncan Sands
75cf2e03ab
Fix a bug in which a node could be added to the
...
worklist twice: UpdateNodeOperands could morph
a new node into a node already on the worklist.
We would then recalculate the NodeId for this
existing node and add it to the worklist. The
testcase is ARM/cse-libcalls.ll, the problem
showing up once UpdateNodeOperands is taught to
do CSE for calls.
llvm-svn: 58246
2008-10-27 13:18:32 +00:00
Zhongxing Xu
7b700575dd
An ElementRegion is really a typed region. Its super region's type has to be ArrayType.
...
llvm-svn: 58245
2008-10-27 13:17:02 +00:00
Douglas Gregor
89ebcb9d8d
When destroying a translation unit, deallocate its owned declarations in reverse order, because there may be dependencies among the declarations.
...
llvm-svn: 58244
2008-10-27 12:50:38 +00:00
Zhongxing Xu
36d4ade4be
We cannot get precise lvalue for symbolic base array region.
...
llvm-svn: 58243
2008-10-27 12:23:17 +00:00
Steve Naroff
c6db58a6bd
Replace common diagnostic with a convenience function.
...
This simplifies debug of this particular diagnostic (and removes some code clutter).
llvm-svn: 58242
2008-10-27 11:34:16 +00:00
Steve Naroff
1d4a9a31b6
Fix <rdar://problem/6315646> clang on xcode: error: invalid operands to binary expression ('id<NSTableViewDelegate>' and 'XCExtendedArrayController *').
...
There is still a bug here (as the FIXME in the test case indicates). Prior to this patch, the bug would generate an error. Now, we simply do nothing (which is less harmful until we can get it right). The complete bug fix will require changing ASTContext::mergeTypes(), which I'd like to defer for now.
llvm-svn: 58241
2008-10-27 10:33:19 +00:00
Torok Edwin
450ffd2f3e
Avoid crashing if instruction is not part of a loop.
...
If it is not part of a loop it is obviously invariant wrt to all loops.
llvm-svn: 58240
2008-10-27 10:18:45 +00:00
Gabor Greif
bb026a0c63
formatting tweak for intrinsic
...
llvm-svn: 58239
2008-10-27 10:17:24 +00:00
Torok Edwin
ca97b42ef7
export an ID for the instructionNamer, allowing analysis/transformation passes
...
that need it to require it by ID.
llvm-svn: 58238
2008-10-27 10:16:27 +00:00
Bill Wendling
ef36246c6f
Some grammar fixes, and non-invasive format changes.
...
llvm-svn: 58237
2008-10-27 09:27:33 +00:00
Zhongxing Xu
bb18b57f53
Get the canonical type for struct initialization. The original code would crash on TypedefType.
...
llvm-svn: 58236
2008-10-27 09:24:07 +00:00
Zhongxing Xu
b32af436df
Add test for SCA region store.
...
llvm-svn: 58235
2008-10-27 09:21:27 +00:00
Zhongxing Xu
7a2ce566bc
Add test for SCA region store.
...
llvm-svn: 58234
2008-10-27 09:19:25 +00:00
Zhongxing Xu
d7c44059d4
Only loc::MemRegionVal can be modified. This avoids crashing in RegionStore when a function pointer is used as an argument.
...
llvm-svn: 58233
2008-10-27 09:00:08 +00:00
Duncan Sands
8475d56794
Turn on LegalizeTypes, the new type legalization
...
codegen infrastructure, by default. Please report
any breakage to the mailing lists.
llvm-svn: 58232
2008-10-27 08:42:46 +00:00
Nick Lewycky
c5a68d26d9
Fix an obvious copy/pasto.
...
llvm-svn: 58231
2008-10-27 07:28:44 +00:00
Evan Cheng
f713722975
For now, don't split live intervals around x87 stack register barriers. FpGET_ST0_80 must be right after a call instruction (and ADJCALLSTACKUP) so we need to find a way to prevent reload of x87 registers between them.
...
llvm-svn: 58230
2008-10-27 07:14:50 +00:00
Chris Lattner
59b5691388
Rewrite all the 'PromoteLocallyUsedAlloca[s]' logic. With the power of
...
LargeBlockInfo, we can now dramatically simplify their implementation
and speed them up at the same time. Now the code has time proportional
to the number of uses of the alloca, not the size of the block.
This also eliminates code that tried to batch up different allocas which
are used in the same blocks, and eliminates the 'retry list' logic which
was baroque and no unneccesary. In addition to being a speedup for crazy
cases, this is also a nice cleanup:
PromoteMemoryToRegister.cpp | 270 +++++++++++++++-----------------------------
1 file changed, 96 insertions(+), 174 deletions(-)
llvm-svn: 58229
2008-10-27 07:05:53 +00:00
Chris Lattner
a9642ff459
no need to print output
...
llvm-svn: 58228
2008-10-27 06:56:35 +00:00
Chris Lattner
f594ecc453
Add a new LargeBlockInfo helper, which is just a wrapper around
...
a trivial dense map. Use this in RewriteSingleStoreAlloca to
avoid aggressively rescanning blocks over and over again. This
fixes PR2925, speeding up mem2reg on the testcase in that bug
from 4.56s to 0.02s in a debug build on my machine.
llvm-svn: 58227
2008-10-27 06:05:26 +00:00
Chris Lattner
bf2262270e
mention getresult -> extractvalue (PR2935)
...
llvm-svn: 58226
2008-10-27 04:39:23 +00:00
Dale Johannesen
1d7e42c8fe
Increase default setting of tail-merge-threshold to
...
150, based on llvm-test measurements.
llvm-svn: 58225
2008-10-27 02:10:21 +00:00
Chris Lattner
66a740e66e
Rename Characteristic_t to CharacteristicKind
...
llvm-svn: 58224
2008-10-27 01:19:25 +00:00
Chris Lattner
69f9bc24f4
Fix the definition of __builtin_va_list on PPC, which was set to the V4 ABI, not the
...
darwin or AIX abis. This fixes PR2904.
llvm-svn: 58222
2008-10-27 01:11:29 +00:00
Nick Lewycky
f5ba827d41
Remove -check-exit-code from bugpoint. This is subsumed by -append-exit-code.
...
Note that -check-exit-code was on by default while -append-exit-code is not.
llvm-svn: 58221
2008-10-26 23:59:36 +00:00
Chris Lattner
084bc32e0d
make codegen reject initializes with designators, like this:
...
t.c:1:13: error: cannot codegen this designators yet
int a[10] = {2, 4, [8]=9, 10};
^~~~~~~~~~~~~~~~~
llvm-svn: 58220
2008-10-26 23:53:12 +00:00
Chris Lattner
07d754acf1
Remember whether an initlist had a designator in the AST.
...
llvm-svn: 58218
2008-10-26 23:43:26 +00:00
Chris Lattner
248388e313
pass designators into sema. This completes parser-level designator
...
support as far as I know.
llvm-svn: 58217
2008-10-26 23:35:51 +00:00
Chris Lattner
9a53fdc23e
implement some more FIXMEs, by rejecting more bogus stuff in
...
objc mode.
llvm-svn: 58216
2008-10-26 23:29:41 +00:00
Chris Lattner
46dcba6d2d
add some simple designator testcases. Reject things like this:
...
struct foo Y[10] = {
[4] .arr [2] 4 // expected-error {{expected '=' or another designator}}
};
because the "missing equals" extension only is valid if there
is exactly one array designator.
llvm-svn: 58215
2008-10-26 23:22:23 +00:00
Chris Lattner
8aafd35c79
improve comments, build array and array range designator nodes,
...
fix an obscure memory leak.
llvm-svn: 58213
2008-10-26 23:06:54 +00:00
Chris Lattner
7243245a58
improve comments, build a Designation for field designators and
...
improve diagnostic for a malformed field designator.
llvm-svn: 58212
2008-10-26 22:59:19 +00:00
Chris Lattner
e2b5e87f58
restructure ParseInitializerWithPotentialDesignator to make it
...
easier to understand and hack on, no functionality change.
llvm-svn: 58210
2008-10-26 22:49:49 +00:00
Chris Lattner
dde6543731
improve MayBeDesignationStart to do the entire determination
...
about whether a leading identifier is a designator.
llvm-svn: 58207
2008-10-26 22:41:58 +00:00
Chris Lattner
3fa9239f41
inline the decision logic that chooses between an assign expr and brace
...
initializer, avoiding an extra level of calls for silly things like
'int x = 4'.
llvm-svn: 58206
2008-10-26 22:38:55 +00:00
Chris Lattner
f3e58e2ebc
This patch continues parser-level implementation of designators:
...
1. It introduces new parser level abstractions for designators
that are used to communicate between parser and sema.
2. This fixes a FIXME where "identifier ':'" was considered to be
a designator even if it wasn't the first in a designator list.
3. In the "identifier ':'" case, it actually builds the designator
representation.
llvm-svn: 58205
2008-10-26 22:36:07 +00:00
Chris Lattner
0c02460038
minor cleanups
...
llvm-svn: 58203
2008-10-26 21:46:13 +00:00
Chris Lattner
2bfc72e65e
fix PR2953, an off-by-one error handling formatted i/o.
...
Thanks to Török Edwin for the awesome reduced testcase.
llvm-svn: 58199
2008-10-26 19:20:47 +00:00
Sebastian Redl
5cba81afb3
Allow \n for newlines in expected error messages.
...
llvm-svn: 58198
2008-10-26 19:05:16 +00:00
Chris Lattner
a43f2b21e7
remove eh output from this test.
...
llvm-svn: 58196
2008-10-26 18:53:07 +00:00
Argyrios Kyrtzidis
22a3735398
Don't give a default argument to ASTContext::getFunctionType for the TypeQuals parameter, it causes subtle bugs where TypeQuals, while necessary, are omitted from the call.
...
-Remove the default argument.
-Update all call sites of ASTContext::getFunctionType.
llvm-svn: 58187
2008-10-26 16:43:14 +00:00
Cedric Venet
10a11f033c
Add a default constructor to AsmWriterOperand to make VS2008sp1 happy. (AsmWriterOperand is used in a std::pair, and VS need to generate the default constructor of this pair).
...
llvm-svn: 58185
2008-10-26 15:40:44 +00:00
Evan Cheng
ed033ede22
Do not shrink wrap live interval in a mbb if it's livein any of its successor blocks. The mbb can be revisited again after all of the successors are processed.
...
llvm-svn: 58184
2008-10-26 07:49:03 +00:00
Oscar Fuentes
29a0da5f8e
Return something (i.e. NULL) from an unimplemented virtual function.
...
llvm-svn: 58183
2008-10-26 04:26:33 +00:00
Zhongxing Xu
60de6c6c63
Remove loc::StringLiteralVal. Now we allocate regions for string literals in the Store.
...
llvm-svn: 58182
2008-10-26 02:27:21 +00:00
Zhongxing Xu
bf47dc85fe
Simplify ArrayToPointer conversion. Actually the only thing we need to do is to get the first element region. It is not necessary to care about the kind of the base array region.
...
llvm-svn: 58181
2008-10-26 02:23:57 +00:00
Oscar Fuentes
07d9f9a6ec
CMake: Builds and installs clang binary and libs (no docs yet). It
...
must be under the `tools' subdirectory of the LLVM *source* tree.
llvm-svn: 58180
2008-10-26 00:56:18 +00:00
Oscar Fuentes
e638f5d854
CMake: If we have `clang' under the `tools/' subdirectory, add it to
...
the build.
llvm-svn: 58179
2008-10-26 00:52:09 +00:00
Oscar Fuentes
20baf2fc3c
CMake: Support for LLVM_USED_LIBS variable, which is the cmake
...
counterpart of USED_LIBS.
llvm-svn: 58178
2008-10-26 00:51:05 +00:00