Eli Friedman
42a8465518
Fix for PR4285: allow intializing a const wchar_t array with a wide
...
string.
llvm-svn: 72663
2009-05-31 10:54:53 +00:00
Douglas Gregor
2373c599b5
Initial infrastructure for class template partial specialization. Here
...
we have the basics of declaring and storing class template partial
specializations, matching class template partial specializations at
instantiation time via (limited) template argument deduction, and
using the class template partial specialization's pattern for
instantiation.
This patch is enough to make a simple is_pointer type trait work, but
not much else.
llvm-svn: 72662
2009-05-31 09:31:02 +00:00
Owen Anderson
cc0c75c74d
Be more aggressive in doing LoadPRE by tracing backwards when a block only has
...
a single predecessor.
Patch by Jakub Staszak.
llvm-svn: 72661
2009-05-31 09:03:40 +00:00
Douglas Gregor
7a1a7cb09d
Add a little FIXME for C++ class printing
...
llvm-svn: 72660
2009-05-31 07:13:39 +00:00
Nick Lewycky
0a8fe66a6c
Fix typo in error message.
...
llvm-svn: 72659
2009-05-31 06:07:28 +00:00
Duncan Sands
96e5698741
Rename CustomLowerResults to CustomLowerNode, since
...
it is used both when a result is illegal and when an
operand is illegal.
llvm-svn: 72658
2009-05-31 04:15:38 +00:00
Duncan Sands
6674a492c4
Unbreak the clang build by applying the same temporary
...
workaround for machine code emitter changes as was used
in llvm-gcc.
llvm-svn: 72657
2009-05-31 04:09:57 +00:00
Anders Carlsson
4a7b49b56a
Add a new function for emitting new functions.
...
llvm-svn: 72656
2009-05-31 01:40:14 +00:00
Anders Carlsson
8eb93e72f7
Emit destructors correctly for temporaries.
...
llvm-svn: 72655
2009-05-31 00:34:10 +00:00
Anders Carlsson
f3f91cee43
When possible, don't emit the cleanup block. Instead, just move the instructions to the current block.
...
llvm-svn: 72654
2009-05-31 00:33:20 +00:00
Anders Carlsson
c0092ad333
Implement VisitCXXExprWithTemporaries for complex expressions.
...
llvm-svn: 72653
2009-05-31 00:12:05 +00:00
Anders Carlsson
2262b307aa
Call EmitCXXExprWithTemporaries.
...
llvm-svn: 72652
2009-05-31 00:09:15 +00:00
Anders Carlsson
89391a9272
Add more getters to the new AST nodes.
...
llvm-svn: 72651
2009-05-31 00:08:52 +00:00
Bruno Cardoso Lopes
b922abb47a
Use uint8_t and int32_t in {JIT,Machine}CodeEmiters
...
llvm-svn: 72650
2009-05-30 23:50:33 +00:00
Anders Carlsson
fd2af0cf86
Add lvalue irgen support for CXXBindTemporaryExpr.
...
llvm-svn: 72649
2009-05-30 23:30:54 +00:00
Anders Carlsson
3be22e27b6
More temporary support.
...
llvm-svn: 72648
2009-05-30 23:23:33 +00:00
Anders Carlsson
feefce601f
Forgot the implementation. Thanks Eli.
...
llvm-svn: 72647
2009-05-30 22:51:20 +00:00
Anders Carlsson
777711ba0b
Add RemoveOutermostTemporaryBinding. Not used yet.
...
llvm-svn: 72644
2009-05-30 22:47:03 +00:00
Anders Carlsson
73b836bf3d
Clean up the newly added C++ AST nodes.
...
llvm-svn: 72643
2009-05-30 22:38:53 +00:00
Anders Carlsson
a524f6fce6
It's OK for a full expr to be null. This fixes the failing test cases.
...
llvm-svn: 72642
2009-05-30 22:24:16 +00:00
Anders Carlsson
5de832ecfa
ActOnReturnStmt should also take a FullExprArg.
...
llvm-svn: 72641
2009-05-30 21:42:34 +00:00
Anders Carlsson
5e9444f541
AddInitializerToDecl needs to take a full expression.
...
llvm-svn: 72640
2009-05-30 21:37:25 +00:00
Anders Carlsson
f8e916de85
Update Xcode project
...
llvm-svn: 72639
2009-05-30 21:32:24 +00:00
Anders Carlsson
c78576e250
Add the newly created temporary to the ExprTemporaries stack.
...
llvm-svn: 72638
2009-05-30 21:21:49 +00:00
Anders Carlsson
4f44fd5c6f
Get rid of CXXTempVarDecl.
...
llvm-svn: 72637
2009-05-30 21:10:34 +00:00
Eli Friedman
f7f9f68722
Some small fixes for fields of reference type.
...
llvm-svn: 72636
2009-05-30 21:09:44 +00:00
Bruno Cardoso Lopes
9499ab3287
Add AMD64 elf machine type
...
llvm-svn: 72635
2009-05-30 21:05:47 +00:00
Anders Carlsson
a29ded9ba8
Stop using CXXTempVarDecl and use CXXTemporary instead.
...
llvm-svn: 72634
2009-05-30 21:05:25 +00:00
Anders Carlsson
4b2434da54
Remove VarDecl from CXXConstructExpr.
...
llvm-svn: 72633
2009-05-30 20:56:46 +00:00
Anders Carlsson
b228818554
Bind temporaries correctly when instantiating expressions.
...
llvm-svn: 72632
2009-05-30 20:52:37 +00:00
Bruno Cardoso Lopes
a194c3a69e
First patch in the direction of splitting MachineCodeEmitter in two subclasses:
...
JITCodeEmitter and ObjectCodeEmitter. No functional changes yet. Patch by Aaron Gray
llvm-svn: 72631
2009-05-30 20:51:52 +00:00
Anders Carlsson
28486d420b
Remove VarDecl from CheckInitializerTypes now that CXXConstructExpr doesn't need to take a VarDecl anymore. (It still does, but it won't for long)
...
llvm-svn: 72630
2009-05-30 20:41:30 +00:00
Anders Carlsson
2d4cada7f7
Add Sema::MaybeBindToTemporary which takes an expression and (if needed) wraps it in a CXXBindTemporaryExpr. Use this when creating CXXTemporaryObjectExprs.
...
llvm-svn: 72629
2009-05-30 20:36:53 +00:00
Anders Carlsson
ffda606612
Small fixes to CXXTemporary and CXXBindTemporaryExpr.
...
llvm-svn: 72628
2009-05-30 20:34:37 +00:00
Anders Carlsson
993a4b3080
Add a CXXBindTemporaryExpr.
...
llvm-svn: 72627
2009-05-30 20:03:25 +00:00
Anders Carlsson
f337d8c515
Add a CXXTemporary class. Not used yet.
...
llvm-svn: 72626
2009-05-30 19:54:15 +00:00
Chris Lattner
221895303c
fix PR4284, a bug in simplifylibcalls handling memcmp. Patch by
...
Benjamin Kramer!
llvm-svn: 72625
2009-05-30 18:43:04 +00:00
Anders Carlsson
36b75a4619
Replace a cast with a dyn_cast as suggested by Doug.
...
llvm-svn: 72624
2009-05-30 17:26:39 +00:00
Nick Lewycky
8e2c4f4716
Metadata uses metadata type not empty struct.
...
llvm-svn: 72623
2009-05-30 16:08:30 +00:00
Mike Stump
5b6bb31eae
Add some documentation.
...
llvm-svn: 72622
2009-05-30 15:19:29 +00:00
Mike Stump
b807c9c622
Cleqnup ideas from Chris, thanks.
...
llvm-svn: 72621
2009-05-30 14:43:18 +00:00
Duncan Sands
24ad1feb77
Adjust these tests now that "extern inline"
...
functions are being output with bodies and
available_externally linkage.
llvm-svn: 72620
2009-05-30 13:57:05 +00:00
Evan Cheng
7142ad75a1
(i64 (zext (srl GR32 8))) -> movzbl AH is not safe since srl 8 only clear the top 8 bits.
...
llvm-svn: 72618
2009-05-30 08:43:27 +00:00
Douglas Gregor
5f478b78c0
AST printing for C++ base classes
...
llvm-svn: 72617
2009-05-30 06:58:37 +00:00
Douglas Gregor
182319375a
Pretty printing and improved representation for namespace alias declarations
...
llvm-svn: 72616
2009-05-30 06:48:27 +00:00
Eli Friedman
1730424516
Add a hack to prevent us from printing out the __builtin_va_list
...
declaration in -ast-print mode.
llvm-svn: 72615
2009-05-30 06:35:22 +00:00
Douglas Gregor
3bc6e4c72a
Printing for using directives, e.g.,
...
using namespace std::debug;
Extended UsingDirectiveDecl to store the nested-name-specifier that
precedes the nominated namespace.
llvm-svn: 72614
2009-05-30 06:31:56 +00:00
Douglas Gregor
2d042f1cf4
Never suppress specifiers when printing the parameters of a function
...
declaration.
llvm-svn: 72613
2009-05-30 05:39:39 +00:00
Eli Friedman
c4fc839c57
Pass an ASTContext into Stmt::printPretty.
...
llvm-svn: 72612
2009-05-30 05:32:46 +00:00
Eli Friedman
0905f14e62
Pass an ASTContext into Stmt::printPretty.
...
llvm-svn: 72611
2009-05-30 05:19:26 +00:00