summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [libclang] Do index statements inside a type source info. rdar://10872758Argyrios Kyrtzidis2012-02-162-0/+14
| | | | llvm-svn: 150647
* Give a description of the Objective-C garbage collection module flags.Bill Wendling2012-02-161-0/+73
| | | | | | | | | | | | | The rule governing the flags is this: no-gc + no-gc = no-gc no-gc + gc = no-gc no-gc + gc-only = error gc + gc = gc gc + gc-only = gc-only gc-only + gc-only = gc-only llvm-svn: 150646
* Implicitly define a lambda's conversion functions (to functionDouglas Gregor2012-02-1611-5/+154
| | | | | | | | | | | | | pointers and block pointers). We use dummy definitions to keep the invariant that an implicit, used definition has a body; IR generation will substitute the actual contents, since they can't be represented as C++. For the block pointer case, compute the copy-initialization needed to capture the lambda object in the block, which IR generation will need later. llvm-svn: 150645
* Teach clang to add metadata tags to calls and invokes in ObjC withDan Gohman2012-02-165-7/+120
| | | | | | | | | -fno-objc-arc-exceptions. This will allow the optimizer to perform optimizations which are only safe under that flag. This is a part of rdar://10803830. llvm-svn: 150644
* Mark the parenthesized array member initialization diagnostic as DefaultError,Richard Smith2012-02-162-2/+3
| | | | | | | and move it out of -Wgnu so that -Wno-gnu leaves it enabled. As requested by Eli. llvm-svn: 150643
* loop-rotate shouldn't hoist alloca instructions out of a loop. Patch by ↵Eli Friedman2012-02-162-1/+35
| | | | | | Patrik Hägglund, with slightly modified test. Issue reported by Patrik Hägglund on llvmdev. llvm-svn: 150642
* [asan] don't do AsanDie twiceKostya Serebryany2012-02-161-0/+2
| | | | llvm-svn: 150641
* Start off release notes for clang 3.1 with reference to C11 anonymous structsRichard Smith2012-02-161-241/+32
| | | | | | and unions, and C++11 generalized constant expressions. llvm-svn: 150640
* objc-arc: For arc's ivar layout, treat __unsafe_unretained ivarsFariborz Jahanian2012-02-162-0/+15
| | | | | | as unscanned. // rdar://10832643 llvm-svn: 150639
* Enable register mask operands for x86 calls.Jakob Stoklund Olesen2012-02-163-40/+30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Call instructions no longer have a list of 43 call-clobbered registers. Instead, they get a single register mask operand with a bit vector of call-preserved registers. This saves a lot of memory, 42 x 32 bytes = 1344 bytes per call instruction, and it speeds up building call instructions because those 43 imp-def operands no longer need to be added to use-def lists. (And removed and shifted and re-added for every explicit call operand). Passes like LiveVariables, LiveIntervals, RAGreedy, PEI, and BranchFolding are significantly faster because they can deal with call clobbers in bulk. Overall, clang -O2 is between 0% and 8% faster, uniformly distributed depending on call density in the compiled code. Debug builds using clang -O0 are 0% - 3% faster. I have verified that this patch doesn't change the assembly generated for the LLVM nightly test suite when building with -disable-copyprop and -disable-branch-fold. Branch folding behaves slightly differently in a few cases because call instructions have different hash values now. Copy propagation flushes its data structures when it crosses a register mask operand. This causes it to leave a few dead copies behind, on the order of 20 instruction across the entire nightly test suite, including SPEC. Fixing this properly would require the pass to use different data structures. llvm-svn: 150638
* Revert "Add a completed/incomplete type difference. This allows us to have"Eric Christopher2012-02-153-190/+68
| | | | | | This reverts commit 9a68d4584afcd0853b930bd80235b58736e785b4. llvm-svn: 150637
* Remove extraneous tests.Bill Wendling2012-02-152-119/+0
| | | | llvm-svn: 150636
* Add a test for generating Objective-C metadata from module flags.Bill Wendling2012-02-151-0/+13
| | | | llvm-svn: 150635
* Handle register masks in branch folding.Jakob Stoklund Olesen2012-02-151-0/+8
| | | | | | | Don't attempt to move instructions with regmask operands. They are most likely calls anyway. llvm-svn: 150634
* Fix library visibility problems with VLIWPacketizer.Andrew Trick2012-02-152-9/+22
| | | | | | The existing framework for postra scheduling is library local. We want to keep it that way. Soon we will have a more general MachineScheduler interface. At that time, various bits will be exposed to targets. In the meantime, the VLIWPacketizer wants to use ScheduleDAGInstrs directly, so it needs to wrapped in a PIMPL to avoid exposing it to the target interface. llvm-svn: 150633
* Use the enum instead of 'unsigned'.Bill Wendling2012-02-152-3/+4
| | | | llvm-svn: 150632
* Add a completed/incomplete type difference. This allows us to haveEric Christopher2012-02-153-68/+190
| | | | | | | | | | | | | | | | partial types for contexts and forward decls while allowing us to complete types later on for debug purposes. This piggy-backs on the metadata replacement and rauw changes for temporary nodes and takes advantage of the incremental support I added in earlier. This allows us to, if we decide, to limit adding methods and variables to structures in order to limit the amount of debug information output into a .o file. The caching is a bit complicated though so any thoughts on untangling that are welcome. llvm-svn: 150631
* Make LiveIntervals::handleMove() bundle aware.Lang Hames2012-02-153-4/+21
| | | | llvm-svn: 150630
* Silence a valgrind warning, and remove an unused var.Kaelyn Uhrain2012-02-151-3/+2
| | | | llvm-svn: 150629
* Use 'getDataNoRel' for the section kind.Bill Wendling2012-02-151-5/+4
| | | | llvm-svn: 150628
* Fix assertion condition.Lang Hames2012-02-151-1/+1
| | | | llvm-svn: 150627
* Add a test for the Objective-C garbage collection metadata stuff.Bill Wendling2012-02-152-0/+119
| | | | llvm-svn: 150626
* Support GCC's bug^Wextension allowing class array members to be initalized by aRichard Smith2012-02-155-4/+41
| | | | | | parenthesized braced-init-list in the base/member initialization list. llvm-svn: 150625
* Modify the code that emits the module flags to use the new module flags accessorBill Wendling2012-02-154-43/+47
| | | | | | | | | method. This allows the target lowering code to not have to deal with MDNodes. Also, avoid leaking memory like a sieve by not creating a global variable for the image info section, but just emitting the code directly. llvm-svn: 150624
* Add a module flags accessor method which returns the flags in a vector.Bill Wendling2012-02-152-0/+26
| | | | llvm-svn: 150623
* Improve typo correction involving nested name specifiers.Kaelyn Uhrain2012-02-153-22/+139
| | | | | | | | | | | | Snooping in other namespaces when the identifier being corrected is already qualified (i.e. a valid CXXScopeSpec is passed to CorrectTypo) and ranking synthesized namespace qualifiers relative to the existing qualifier is now performed. Support for disambiguating the string representation of synthesized namespace qualifers has also been added (the change to test/Parser/cxx-using-directive.cpp is an example of an ambiguous relative qualifier). llvm-svn: 150622
* Add function for computing the edit distance of two arrays.Kaelyn Uhrain2012-02-152-51/+107
| | | | | | | | Accomplished by moving the body of StringRef::edit_distance into a separate function that accepts two ArrayRefs, and making StringRef::edit_distance a wrapper around the new function. llvm-svn: 150621
* Lambda closure types have a conversion function to a block pointerDouglas Gregor2012-02-152-0/+57
| | | | | | | | | | | with the same parameter types and return type as the function call operator. This is the real answer to http://stackoverflow.com/questions/4148242/is-it-possible-to-convert-a-c0x-lambda-to-a-clang-block :) llvm-svn: 150620
* Don't expose DefaultVLIWSchedulerAndrew Trick2012-02-152-3/+3
| | | | llvm-svn: 150619
* objective-c translator: fixes an obscure rewriting bugFariborz Jahanian2012-02-151-14/+14
| | | | | | which attempted to rewrite the same meta-data twice. llvm-svn: 150618
* Factor the construction of the lambda-to-function-pointer conversion ↵Douglas Gregor2012-02-151-38/+48
| | | | | | function declaration into a separate function. No functionality change llvm-svn: 150617
* Provide common include for all diagnostic headers.David Blaikie2012-02-153-36/+41
| | | | | | Reviewed by Ted Kremenek. llvm-svn: 150616
* Store the warning option corresponding to a diagnostics as an index into the ↵Benjamin Kramer2012-02-152-26/+39
| | | | | | | | option table instead of storing the name. Another 8 bytes + relocation removed from every diagnostic on x86_64. llvm-svn: 150615
* Use __is_polymorphic if available. This fixes ↵Howard Hinnant2012-02-151-0/+10
| | | | | | http://llvm.org/bugs/show_bug.cgi?id=11983 . Patch contributed by Jonathan Sauer. llvm-svn: 150614
* tuple was accidentally lacking a valid copy assignment operator. It went ↵Howard Hinnant2012-02-153-2/+10
| | | | | | undetected because I had failed to test assigning from a const lvalue. This fixes http://llvm.org/bugs/show_bug.cgi?id=11921 llvm-svn: 150613
* Remove the unuseful -fdiagnostics-show-nameDavid Blaikie2012-02-1511-160/+49
| | | | | | | | | | | | | | This option was added in r129614 and doesn't have any use case that I'm aware of. It's possible that external tools are using these names - and if that's the case we can certainly reassess the functionality, but for now it lets us shave out a few unneeded bits from clang. Move the "StaticDiagNameIndex" table into the only remaining consumer, diagtool. This removes the actual diagnostic name strings from clang entirely. Reviewed by Chris Lattner & Ted Kremenek. llvm-svn: 150612
* When overload resolution picks an implicitly-deleted special memberDouglas Gregor2012-02-1516-103/+176
| | | | | | | | | function, provide a specialized diagnostic that indicates the kind of special member function (default constructor, copy assignment operator, etc.) and that it was implicitly deleted. Add a hook where we can provide more detailed information later. llvm-svn: 150611
* utils: Kill NewNightlyTest.pl, which has been replaced by LNT (as far as I ↵Daniel Dunbar2012-02-153-849/+4
| | | | | | know). llvm-svn: 150610
* Do not parse sign if a sign is not the next legal character when parsing ↵Howard Hinnant2012-02-153-0/+33
| | | | | | floating point from an input stream. Fixes http://llvm.org/bugs/show_bug.cgi?id=11871 llvm-svn: 150609
* Remove overly conservative assert.Lang Hames2012-02-151-1/+0
| | | | llvm-svn: 150608
* Generic "VLIW" packetizer based on a DFA generated from target itinerary.Andrew Trick2012-02-152-0/+216
| | | | | | Patch by Sundeep! llvm-svn: 150607
* Optimize redundant sign extends and negation of predicates.Sirish Pande2012-02-1515-209/+1037
| | | | llvm-svn: 150606
* Revert "Replacing HexagonOptimizeSZExtends with HexagonPeephole."Eric Christopher2012-02-152-292/+129
| | | | | | This reverts commit 1656806a944bbd23e98c6e578810fe02495ab741. llvm-svn: 150605
* Revert "Optimize redundant sign extends and negation of predicates"Eric Christopher2012-02-1513-745/+80
| | | | | | | | as it's breaking the build. This reverts commit 11241abca5e2a313412fed594bb9d9fa2a2057fb. llvm-svn: 150604
* Replacing HexagonOptimizeSZExtends with HexagonPeephole.Sirish Pande2012-02-152-129/+292
| | | | llvm-svn: 150603
* Add some Solaris include paths and fix a -lgcc_eh that apparently should be ↵David Chisnall2012-02-152-1/+10
| | | | | | -lgcc_s. llvm-svn: 150602
* Optimize redundant sign extends and negation of predicatesSirish Pande2012-02-1513-80/+745
| | | | llvm-svn: 150601
* Tweak comment above DiagGroup<"all">.Nico Weber2012-02-151-1/+3
| | | | llvm-svn: 150600
* Another stab at fixing http://llvm.org/bugs/show_bug.cgi?id=12007. I ↵Howard Hinnant2012-02-151-1/+1
| | | | | | earlier missed that there are two common_type definitions and corrected only one of them. llvm-svn: 150599
* Add braces to if clause to make symmetric with associate else clause.Chad Rosier2012-02-151-18/+19
| | | | llvm-svn: 150591
OpenPOWER on IntegriCloud