summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Move CharacterLiteral, FloatingLiteral and UnaryExprOrTypeTraitExpr flags ↵Benjamin Kramer2012-02-262-30/+63
| | | | | | | | | over into Stmt. Apply the inheritance-padding trick to FloatingLiteral. Shrinks CharacterLiteral from 32 to 24 bytes and the other two from 40 to 32 bytes (x86_64). llvm-svn: 151500
* Make clever use of padding to shrink IntegerLiterals.Benjamin Kramer2012-02-261-7/+4
| | | | | | | Inheritance allows us to use padding across classes. 40 -> 32 bytes on x86_64. llvm-svn: 151499
* Bit pack StringLiteral.Benjamin Kramer2012-02-261-3/+3
| | | | | | 48 -> 40 bytes on x86_64. llvm-svn: 151498
* Reduce padding in MemberExpr.Benjamin Kramer2012-02-261-6/+6
| | | | | | 56 -> 48 bytes on x86_64. llvm-svn: 151497
* CompoundLiteralExpr: Pair a bool with a pointer.Benjamin Kramer2012-02-261-7/+11
| | | | | | 48 -> 40 bytes on x86_64. llvm-svn: 151496
* Shuffle members of DesignatedInitExpr to avoid padding.Benjamin Kramer2012-02-261-5/+5
| | | | | | 40 -> 32 bytes on x86_64. llvm-svn: 151495
* Bit pack ExtProtoInfo.Benjamin Kramer2012-02-261-5/+5
| | | | llvm-svn: 151494
* Move FullSourceLoc::dump into the .cpp file, the used attribute made us emit ↵Benjamin Kramer2012-02-262-1/+5
| | | | | | this into every TU that includes SourceLocation.h. llvm-svn: 151493
* vector::emplace_back was mistakenly requiring move assignable. Fixed that ↵Howard Hinnant2012-02-261-6/+19
| | | | | | and did a little drive-by optimization at the same time. This fixes http://llvm.org/bugs/show_bug.cgi?id=12085. llvm-svn: 151492
* Okay, makes sense to change all the occurences to match clang.EXE.Benjamin Kramer2012-02-261-3/+3
| | | | llvm-svn: 151491
* Allow any file extension for the clang binary in the linux-header-search test.Benjamin Kramer2012-02-261-1/+1
| | | | | | Turns out this can be .exe or .EXE, depending on the build system. llvm-svn: 151490
* Add support for random constant vectors.Nadav Rotem2012-02-261-1/+23
| | | | | | Patch by Joey Gouly. llvm-svn: 151489
* Style fix: Remove unneeded parentheses.Nadav Rotem2012-02-261-2/+2
| | | | llvm-svn: 151488
* Fix a bug in the code that checks if a store value is a vector of i1sNadav Rotem2012-02-261-1/+2
| | | | llvm-svn: 151487
* Don't assert when trying to diagnose why a class with a constructor template isRichard Smith2012-02-263-9/+33
| | | | | | non-trivial. llvm-svn: 151486
* Add the critical crtbegin.o files necessary for any of the tests inChandler Carruth2012-02-264-0/+0
| | | | | | r151482 and r151484 to work. Sorry about the fallout... llvm-svn: 151485
* A follow-up to r151482 which added support for powerpc and powerpc64Chandler Carruth2012-02-262-0/+68
| | | | | | | | | | | | | | | | | Debian multiarch libraries, this should in theory add support for those platform's header search rules. I don't have a system to check this with, so review appreciated. I've added the corresponding tests referring to the debian multiarch tree. We are starting to have a relatively completely tested Linux platform for header search and library search, with several interesting peculiarities. We should point people at the debian_multiarch_tree when suggesting new tests. Folks with Debian systems that can check this for correctness, it would be much appreciated. The missing chunks I know of are testing bi-arch peudo-cross-compiling toolchains betwen 32-bit and 64-bit variants of platforms, and the MIPS and ARM Debian toolchains. llvm-svn: 151484
* Ensure that we delete destructors in the right cases. Specifically:Richard Smith2012-02-264-105/+203
| | | | | | | | | | | | | | - variant members with nontrivial destructors make the containing class's destructor deleted - check for a virtual destructor after checking for overridden methods in the base class(es) - check for an inaccessible operator delete for a class with a virtual destructor. Do not try to call an anonymous union field's destructor from the destructor of the containing class. llvm-svn: 151483
* Add support for PPC and PPC64 multiarch toolchains on Debain.Chandler Carruth2012-02-2623-0/+60
| | | | | | | | | | | | | | | | | Patch from Michel Dänzer, sent our way via Jeremy Huddleston who added 64-bit support. I just added one other place where powerpc64-linux-gnu was missing (we only had powerpc64-unknown-linux-gnu). I've also added a tree to test out the debian multiarch stuff. I don't use debian regularly, so I'm not certain this is entirely accurate. If anyone wants to check it against a debian system and fix any inaccuracies, fire away. This way at least folks can see how this is *supposed* to be tested. It'd be particularly good to get the Debian MIPS toolchains tested in this way. llvm-svn: 151482
* Fix compilation on MSVC. Rename "_BB" to "Block"Nadav Rotem2012-02-261-2/+2
| | | | | | Thanks zygoloid. llvm-svn: 151481
* fix a copy-and-paste error in the docsNadav Rotem2012-02-261-1/+1
| | | | llvm-svn: 151480
* Add a random .LL file generator to stress-test different llvm components.Nadav Rotem2012-02-269-2/+741
| | | | llvm-svn: 151479
* Make sure we don't try to produce a definition of an implicitly-deleted functionRichard Smith2012-02-263-13/+20
| | | | llvm-svn: 151478
* Update release notes and language extensions pages to note that support forRichard Smith2012-02-262-4/+1
| | | | | | generalized initializers is available. llvm-svn: 151477
* Made a ModuleSpec class in Module.h which can specify a module using one orGreg Clayton2012-02-2627-564/+575
| | | | | | | | | | | | | | | | | | more of the local path, platform path, associated symbol file, UUID, arch, object name and object offset. This allows many of the calls that were GetSharedModule to reduce the number of arguments that were used in a call to these functions. It also allows a module to be created with a ModuleSpec which allows many things to be specified prior to any accessors being called on the Module class itself. I was running into problems when adding support for "target symbol add" where you can specify a stand alone debug info file after debugging has started where I needed to specify the associated symbol file path and if I waited until after construction, the wrong symbol file had already been located. By using the ModuleSpec it allows us to construct a module with as little or as much information as needed and not have to change the parameter list. llvm-svn: 151476
* Add testcase for the previous commit.Rafael Espindola2012-02-261-0/+25
| | | | llvm-svn: 151475
* Don't call dominates on unreachable instructions. Should fix the dragoneggRafael Espindola2012-02-261-2/+6
| | | | | | build. Testcase is still reducing. llvm-svn: 151474
* Default TargetData alignment information for 128-bit floating-point types.Hal Finkel2012-02-261-0/+1
| | | | llvm-svn: 151473
* And update the comment...Rafael Espindola2012-02-261-1/+0
| | | | llvm-svn: 151472
* Enable the assert that got all this dominator work started.Rafael Espindola2012-02-261-1/+1
| | | | llvm-svn: 151471
* Use the DT dominates function in the verifier.Rafael Espindola2012-02-261-72/+55
| | | | llvm-svn: 151470
* Change the implementation of dominates(inst, inst) to one based on what theRafael Espindola2012-02-265-32/+156
| | | | | | | | verifier does. This correctly handles invoke. Thanks to Duncan, Andrew and Chris for the comments. Thanks to Joerg for the early testing. llvm-svn: 151469
* Don't call dominates on unreachable instructions.Rafael Espindola2012-02-261-2/+2
| | | | llvm-svn: 151468
* Reinstate the optimization from r151449 with a fix to not turn 'gep %x' intoNick Lewycky2012-02-263-14/+115
| | | | | | 'gep null' when the icmp predicate is unsigned (or is signed without inbounds). llvm-svn: 151467
* Don't call dominates on unreachable instructions.Rafael Espindola2012-02-262-2/+3
| | | | llvm-svn: 151466
* Special members which are defaulted or deleted on their first declaration areRichard Smith2012-02-266-24/+147
| | | | | | | | | | | | | trivial if the implicit declaration would be. Don't forget to set the Trivial flag on the special member as well as on the class. It doesn't seem ideal that we have two separate mechanisms for storing this information, but this patch does not attempt to address that. This leaves us in an interesting position where the has_trivial_X trait for a class says 'yes' for a deleted but trivial X, but is_trivially_Xable says 'no'. This seems to be what the standard requires. llvm-svn: 151465
* Revert r151460 as it is not enough to address the issue.Argyrios Kyrtzidis2012-02-252-2061/+38
| | | | | | | | | | | Original log: When evaluating integer expressions handle logical operators outside VisitBinaryOperator() to reduce stack pressure for source with huge number of logical operators. Fixes rdar://10913206. llvm-svn: 151464
* Roll these back to r151448 until I figure out how they're breakingNick Lewycky2012-02-253-97/+13
| | | | | | MultiSource/Applications/lua. llvm-svn: 151463
* Richard Smith pointed out that there already is a proposal for init list ↵Sebastian Redl2012-02-252-12/+21
| | | | | | mangling. llvm-svn: 151462
* update test for explicit bool operator.Howard Hinnant2012-02-251-3/+3
| | | | llvm-svn: 151461
* When evaluating integer expressions handle logical operators outsideArgyrios Kyrtzidis2012-02-252-34/+2057
| | | | | | | | | VisitBinaryOperator() to reduce stack pressure for source with huge number of logical operators. Fixes rdar://10913206. llvm-svn: 151460
* At least temporarily move operator new/delete from the abi back to here. ↵Howard Hinnant2012-02-252-10/+10
| | | | | | I'm having trouble reexporting it as a weak symbol. llvm-svn: 151459
* Initializer lists are now supported.Sebastian Redl2012-02-253-2/+11
| | | | llvm-svn: 151458
* CodeGen support for global variables of type std::initializer_list<X>.Sebastian Redl2012-02-255-18/+157
| | | | | | | | | | | | | This emits a backing array with internal linkage and fills it with data, then has the initializer_list point at the array. Dynamic initialization and global destructors are correctly supported. What doesn't work is nested initializer_lists. I have no idea how to get them to work, either. However, these should be very rare, and so I'll just call it a known bug and declare generalized initializers DONE! llvm-svn: 151457
* Fix crashers on unexpected std::initializer_list layouts. Found by inspection.Sebastian Redl2012-02-251-0/+4
| | | | llvm-svn: 151456
* Better mangling for new-expressions. Also, although we can't mangle ↵Sebastian Redl2012-02-252-4/+75
| | | | | | arbitrary initializer lists yet (we will need this), turn the crash into a controlled error. llvm-svn: 151455
* Temporarily revert r151288:Chad Rosier2012-02-251-2/+3
| | | | | | ARM: enable the integrated assembler by default for Darwin. llvm-svn: 151454
* ReExport some mor symbols from libc++abi.Howard Hinnant2012-02-251-0/+42
| | | | llvm-svn: 151453
* An argument and a local identified object (eg. a noalias call) could turn outNick Lewycky2012-02-252-26/+37
| | | | | | | equal if both are null. In the test, scope type %t and global @y by adding a 'gep' prefix to them. llvm-svn: 151452
* Silence some warnings in a test.Howard Hinnant2012-02-251-0/+2
| | | | llvm-svn: 151451
OpenPOWER on IntegriCloud