Commit Graph

62987 Commits

Author SHA1 Message Date
Alisdair Meredith a9ad47d94c Basic support for C++0x unicode types. Support for literals will follow in an incremental patch
llvm-svn: 75622
2009-07-14 06:30:34 +00:00
Evan Cheng c0e371f143 Use http instead https for anonymous readonly check out.
llvm-svn: 75621
2009-07-14 06:23:41 +00:00
Chris Lattner 6f147a3c01 remove renamed method.
llvm-svn: 75620
2009-07-14 06:22:15 +00:00
Chris Lattner 3af24cc26f rename getValueName -> getMangledName. These two files have very
dubious looking things that I need to investigate in more detail.

llvm-svn: 75619
2009-07-14 06:21:12 +00:00
Chris Lattner 688920e511 Rename getValueName -> getMangledName
llvm-svn: 75618
2009-07-14 06:20:20 +00:00
Chris Lattner 6ec9f40ac7 rename getValueName -> getMangledName
llvm-svn: 75617
2009-07-14 06:19:21 +00:00
Chris Lattner 0639a72834 rename getValueName -> getMangledName
llvm-svn: 75616
2009-07-14 06:19:07 +00:00
Chris Lattner 027c84d2c8 Rename getValueName -> getMangledName.
llvm-svn: 75615
2009-07-14 06:18:50 +00:00
Chris Lattner 74d3c61532 use new name for method.
llvm-svn: 75614
2009-07-14 06:16:43 +00:00
Bob Wilson 40221d0d3d Remove some tabs and fix other whitespace. No functional changes.
llvm-svn: 75613
2009-07-14 06:11:12 +00:00
Bob Wilson d59ad0cb59 Fix a comment.
llvm-svn: 75612
2009-07-14 06:09:50 +00:00
Bob Wilson e749587f4a Fix an obvious error.
llvm-svn: 75611
2009-07-14 06:06:28 +00:00
Chris Lattner 774f2a2d51 Change the X86 asmprinter to use the mangler to apply suffixes like "$non_lazy_ptr"
to symbols instead of doing it with "printSuffixedName".  This gets us to the point
where there is a real separation between computing a symbol name and printing it,
something I need for MC printer stuff.

This patch also fixes a corner case bug where unnamed private globals wouldn't get
the private label prefix.

Next up, rename all uses of getValueName -> getMangledName for better greppability,
and then tackle the ppc/arm backends to eliminate "printSuffixedName".

llvm-svn: 75610
2009-07-14 06:04:35 +00:00
Lang Hames 4fe642eba8 New VNInfo alignment patch by Ryan Flynn.
llvm-svn: 75609
2009-07-14 05:46:55 +00:00
Argyrios Kyrtzidis 9cbe886cff Move the RUN lines on the same file but below the code, as suggested by Sebastian.
llvm-svn: 75608
2009-07-14 05:34:59 +00:00
Chris Lattner f34815b32f Change the internal interface to makeNameProper to take a bool that
indicates whether the label is private or not, instead of taking
prefix stuff.  One effect of this is that symbols will be generated
with *just* the private prefix, instead of both the private prefix
*and* the user-label-prefix, but this doesn't matter as long as it
is consistent.  For example we'll now get "Lfoo" instead of "L_foo".
These are just assembler temporary labels anyway, so they never even
make it into the .o file.

llvm-svn: 75607
2009-07-14 04:50:12 +00:00
Argyrios Kyrtzidis b0c86d4fe8 In Stmt::printPretty(), pass the SourceManager to dump().
llvm-svn: 75606
2009-07-14 03:20:38 +00:00
Argyrios Kyrtzidis 12563b8111 Handle redeclarations properly at the index-test tool.
llvm-svn: 75605
2009-07-14 03:20:31 +00:00
Argyrios Kyrtzidis 1506d9bc25 Introduce redecl_iterator, used for iterating over the redeclarations of a FunctionDecl or VarDecl.
It iterates over all the redeclarations, regardless of the starting point. For example:

1) int f();
2) int f();
3) int f();

if you have the (2) FunctionDecl and call redecls_begin/redecls_end to iterate, you'll get this sequence:
(2)
(1)
(3)

The motivation to introduce this was that, previously, if (3) was a function definition,
and you called getBody() at (2), it would not return it, since getBody() iterated over the previous declarations only,
so it would only check (2) and (1).

llvm-svn: 75604
2009-07-14 03:20:21 +00:00
Argyrios Kyrtzidis 0736c5ca3b Introduce FunctionDecl::getLatestDeclaration() and VarDecl::getLatestDeclaration().
For multiple redeclarations they return the last one.

Also, add some non const versions of methods.

llvm-svn: 75603
2009-07-14 03:20:08 +00:00
Argyrios Kyrtzidis ef17c07bf6 Introduce FunctionDecl::getFirstDeclaration() and VarDecl::getFirstDeclaration().
For multiple redeclarations they return the first one.

llvm-svn: 75602
2009-07-14 03:19:57 +00:00
Argyrios Kyrtzidis d49e8dd759 Add a C++ indexing test case, where we show the references of overloaded '+' plus signs.
Ok, this is a bit out of place since C++ support is way way off, but it was just too cool to not show it off :-)

llvm-svn: 75601
2009-07-14 03:19:46 +00:00
Argyrios Kyrtzidis ef1c1e572c For C++ overloaded operator calls, set the source location of the DeclRefExpr to the location of the operator.
llvm-svn: 75600
2009-07-14 03:19:38 +00:00
Argyrios Kyrtzidis e6cd787ee1 For index-test, if the ASTLocation points at a CallExpr, get a Decl out of it.
llvm-svn: 75599
2009-07-14 03:19:30 +00:00
Argyrios Kyrtzidis eeaaead736 Read/write a CXXOperatorCallExpr from/to PCH files.
llvm-svn: 75598
2009-07-14 03:19:21 +00:00
Argyrios Kyrtzidis 11a846ab53 Fixes for a couple of things:
- Declaration context of ParmVarDecls (that we got from the Declarator) was not their containing function.
- C++ out-of-line method definitions didn't get an access specifier.

Both were exposed by a crash when emitting a C++ method to a PCH file (assert at Decl::CheckAccessDeclContext()).

llvm-svn: 75597
2009-07-14 03:18:53 +00:00
Argyrios Kyrtzidis 2f0eff102c Handle struct fields through the index-test tool.
llvm-svn: 75596
2009-07-14 03:18:40 +00:00
Argyrios Kyrtzidis 558449bf79 Move the test input source code to a separate file.
That way we can freely add new RUN lines without having to correct the line part in all the -point-at options.

llvm-svn: 75595
2009-07-14 03:18:25 +00:00
Argyrios Kyrtzidis 307b0717f7 In ResolveLocationInAST, handle locations that are inside TagDecl definitions.
llvm-svn: 75594
2009-07-14 03:18:17 +00:00
Argyrios Kyrtzidis a28d145cbb In DeclReferenceMap, map FieldDecls to the MemberExprs that reference them.
llvm-svn: 75593
2009-07-14 03:18:09 +00:00
Argyrios Kyrtzidis 664b690107 Read/write TagDecl's RBraceLoc from/to PCH files.
llvm-svn: 75592
2009-07-14 03:18:02 +00:00
Argyrios Kyrtzidis 23e1f1d6be Pass the right brace SourceLocation from the Parser to the TagDecls.
llvm-svn: 75591
2009-07-14 03:17:52 +00:00
Argyrios Kyrtzidis 575fa05991 Add the SourceLocation for the right brace in TagDecl.
llvm-svn: 75590
2009-07-14 03:17:17 +00:00
Devang Patel d6c256696b Use LLVM mangler to get mangled name for debug info entry.
llvm-svn: 75589
2009-07-14 02:47:58 +00:00
Lang Hames 69008332bd Unbroke LiveInterval.
llvm-svn: 75588
2009-07-14 02:17:17 +00:00
Lang Hames 6d04975ccb Tidy up VNInfo alignment code. Patch contributed by Ryan Flynn.
llvm-svn: 75587
2009-07-14 02:05:37 +00:00
Eli Friedman 14379df4e6 Fix trivial todo in instcombine.
llvm-svn: 75586
2009-07-14 02:01:53 +00:00
Evan Cheng bd9ba429ca 1. In Thumb mode, select tBx instead of ARM variants.
2. BX does not "use" the link register, it defines it.
3. Fix a couple more places in thumb td file that still uses pre-UAL syntax.

llvm-svn: 75585
2009-07-14 01:49:27 +00:00
Dan Gohman 4d6149f356 Update LoopSimplify and LoopUnswitch to use the new makeLoopInvariant
function.

llvm-svn: 75584
2009-07-14 01:37:59 +00:00
Dan Gohman 734759e5db Port this unittest to use LLVMContext.
llvm-svn: 75583
2009-07-14 01:26:26 +00:00
Daniel Dunbar f5c79709bc Update debug info generation for ObjCObjectPointer changes.
- Previously this would crash on recursive types, and it was also incorrectly
   stripping off a level of indirection.
 - I'm not 100% convinced this is all correct, but it should be a monotonic
   improvment.

llvm-svn: 75582
2009-07-14 01:20:56 +00:00
Bill Wendling b1f9128c72 Remove hack now that Evan fixed it so that the frame pointer isn't saved twice.
llvm-svn: 75581
2009-07-14 01:16:18 +00:00
Zhongxing Xu 170e816eff Instead of recovering from a wrong invalidation, this patch aims to
invalidate the region correctly. It uses the cast-to type to invalidate 
the region when available. To avoid invalid cast-to type like 'void*' or 'id',
region store now only records non-generic casts of regions.

llvm-svn: 75580
2009-07-14 01:12:46 +00:00
Dan Gohman 03d5d0f451 Fix indvars to not assume that a loop with a single unique exit
block has a single unique exiting block.

llvm-svn: 75579
2009-07-14 01:09:02 +00:00
Dan Gohman 6f6d864815 Introduce a new LoopInfo utility function makeLoopInvariant, which
works similar to isLoopInvariant, except that it will do trivial
hoisting to try to make the value loop invariant if it isn't already.
This makes it easier for transformation passes to clear trivial
instructions out of the way (the regular LICM pass doesn't run
until relatively late). This is code factored out of LoopSimplify
and other places.

llvm-svn: 75578
2009-07-14 01:06:29 +00:00
Chris Lattner fc4b5cb7a6 use getValueName instead of makeNameProper.
llvm-svn: 75577
2009-07-14 01:01:12 +00:00
David Goodwin 72b80ac9b1 Fix detection of valid BFC immediates.
llvm-svn: 75576
2009-07-14 00:57:56 +00:00
Devang Patel caadf8c9dc I just revertd llvm patch.
XFAIL this for now until I prepare clang specific patch.

llvm-svn: 75575
2009-07-14 00:56:16 +00:00
Devang Patel cdfc858ec0 Do not use Mangler to remove '1' from linkage name.
llvm-svn: 75574
2009-07-14 00:55:28 +00:00
Bill Wendling e604b776a7 Check for the correct unnamed name.
llvm-svn: 75573
2009-07-14 00:53:58 +00:00