summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* This patch fixes the cmake build to create libclang.so/libclang.a on linuxManuel Klimek2012-05-151-6/+14
| | | | | | | | instead of liblibclang.so/liblibclang.a. Patch by Arnaud de Grandmaison. llvm-svn: 156809
* Rejected r156804 due to buildbots failures.Stepan Dyatkovskiy2012-05-151-35/+46
| | | | llvm-svn: 156808
* Further improvement to wording of overload resolution diagnostics, and includingRichard Smith2012-05-156-23/+51
| | | | | | the sole parameter name in the diagnostic in more cases. Patch by Terry Long! llvm-svn: 156807
* PR12798: Don't drop part of the nested name specifier when instantiating aRichard Smith2012-05-152-1/+16
| | | | | | | pseudo-destructor expression. This can affect whether virtual dispatch for the destructor call is bypassed. llvm-svn: 156806
* Test file I forgot to 'svn add' in r156802.Richard Smith2012-05-151-0/+14
| | | | llvm-svn: 156805
* SelectionDAGBuilder::Clusterify : main functinality was replaced with ↵Stepan Dyatkovskiy2012-05-151-46/+35
| | | | | | CRSBuilder::optimize, so big part of Clusterify's code was reduced. llvm-svn: 156804
* PR12826: Converting an lvalue to an xvalue is a no-op conversion, not an ↵Richard Smith2012-05-152-4/+10
| | | | | | lvalue-to-rvalue conversion. llvm-svn: 156803
* Fold the six functions checking explicitly-defaulted special member functionsRichard Smith2012-05-1510-585/+290
| | | | | | | | | | | | into one. These were all performing almost identical checks, with different bugs in each of them. This fixes PR12806 (we weren't setting the exception specification for an explicitly-defaulted, non-user-provided default constructor) and enforces 8.4.2/2's rule that an in-class defaulted member must exactly match the implicit parameter type. llvm-svn: 156802
* Temporarily disable anti-dependence breaking for Mips until bug 12829 isAkira Hatanaka2012-05-151-1/+1
| | | | | | resolved. llvm-svn: 156801
* Fixed a typo: "aync" => "async"Greg Clayton2012-05-151-8/+8
| | | | llvm-svn: 156797
* <rdar://problem/11451919>Greg Clayton2012-05-152-7/+6
| | | | | | Fixed the test suite not working on i386 due to recent default arch detection changes. llvm-svn: 156796
* <rdar://problem/11240464>Greg Clayton2012-05-1510-54/+243
| | | | | | Correctly unique a class' methods when we detect that a class has been uniqued to another. llvm-svn: 156795
* Change the mangling of a ref-qualifier on a function type so thatJohn McCall2012-05-152-6/+23
| | | | | | | | | | | | | | | | | | | | | | | | it is placed in a position which is never ambiguous with a reference-to-function type. This follows some recent discussion and ensuing proposal on cxx-abi-dev. It is not necessary to change the mangling of CV-qualifiers because you cannot apply CV-qualification in the normal sense to a function type. It is not necessary to change the mangling of ref-qualifiers on method declarations because they appear in an unambiguous location. In addition, mangle CV-qualifiers and ref-qualifiers on function types when they occur in positions other than member pointers (that is, when they appear as template arguments). This is a minor ABI break with previous releases of clang. It is not considered critical because (1) ref-qualifiers are relatively rare, since AFAIK we're the only implementing compiler, and (2) they're particularly likely to come up in contexts that do not rely on the ODR for correctness. We apologize for any inconvenience; this is the right thing to do. llvm-svn: 156794
* Fixing a bug where the summary for certain NSStrings was being returned as ↵Enrico Granata2012-05-153-4/+13
| | | | | | empty in spite of the string actually having a content llvm-svn: 156793
* Create a struct representing register units in TableGen.Jakob Stoklund Olesen2012-05-152-35/+50
| | | | | | | | | | | | Besides the weight, we also want to store up to two root registers per unit. Most units will have a single root, the leaf register they represent. Units created for ad hoc aliasing get two roots: The two aliasing registers. The root registers can be used to compute the set of overlapping registers. llvm-svn: 156792
* Remove extraneous ';'.Bill Wendling2012-05-151-1/+1
| | | | llvm-svn: 156791
* Add a command line option to skip the delay slot filler pass entirely for Mips.Akira Hatanaka2012-05-141-0/+10
| | | | | | | | | | The purpose of this option is to silence error messages issued by machine verifier passes and enable them to run to the end. If this option is not provided, -verify-machineinstrs complains when it discovers there is a non-terminator instruction (an instruction that is in a delay slot) after the first terminator in a basic block. llvm-svn: 156790
* [objcmt] When rewriting to subscripting syntax, make sure we putArgyrios Kyrtzidis2012-05-143-2/+30
| | | | | | | | the receiver in parentheses when necessary. Part of rdar://11438360 llvm-svn: 156789
* objc: allow typedef'ing an id to a pointer to a c-struct only.Fariborz Jahanian2012-05-142-7/+27
| | | | | | // rdar://11356439 llvm-svn: 156788
* [Support/YAMLParser] Use rtrim on plain scalars.Michael J. Spencer2012-05-141-3/+1
| | | | llvm-svn: 156787
* Recover properly from a redundant 'typename' before a non-nested name. This isRichard Smith2012-05-142-5/+30
| | | | | | | permitted as a Microsoft extension. Patch by William Wilson! (Plus some minor tweaking by me.) llvm-svn: 156786
* [Support/COFF] Make the order of members in symbol match the standard.Michael J. Spencer2012-05-141-1/+1
| | | | llvm-svn: 156785
* [analyzer] Fix a crash in templated code which uses blocks.Anna Zaks2012-05-142-1/+32
| | | | | | We should investigate why signature info is not set in this case. llvm-svn: 156784
* Slightly generalize FileCheck patterns to unbreak -Asserts builds.Richard Smith2012-05-141-1/+1
| | | | llvm-svn: 156783
* [objcmt] When rewriting to array/dictionary literals, add an explicitArgyrios Kyrtzidis2012-05-146-1/+103
| | | | | | | | cast to 'id' for any argument that requires it. Part of rdar://11438360. llvm-svn: 156782
* Implement IRGen for C++11's "T{1, 2, 3}", where T is an aggregate and theRichard Smith2012-05-144-7/+44
| | | | | | expression is treated as an lvalue. llvm-svn: 156781
* Fix use of uninitialized variable.David Blaikie2012-05-141-1/+1
| | | | | | Found by GCC's maybe-uninitialized. llvm-svn: 156780
* Fixing a typo in the lldb-gdb webpageEnrico Granata2012-05-141-1/+1
| | | | llvm-svn: 156779
* Don't access MO reference after invalidating operand list.Jakob Stoklund Olesen2012-05-141-2/+3
| | | | | | This should unbreak llvm-x86_64-linux. llvm-svn: 156778
* Fix PR12821.Jakob Stoklund Olesen2012-05-142-1/+39
| | | | | | | RAFast must add an <imp-def> operand when it is rewriting a sub-register def that isn't a read-modify-write. llvm-svn: 156777
* Move the capture analysis from MemoryDependencyAnalysis to a more general placeChad Rosier2012-05-146-89/+128
| | | | | | | | | so that it can be reused in MemCpyOptimizer. This analysis is needed to remove an unnecessary memcpy when returning a struct into a local variable. rdar://11341081 PR12686 llvm-svn: 156776
* Revert 156634 upon request until code improvement changes are made.Brendon Cahoon2012-05-1417-3763/+343
| | | | llvm-svn: 156775
* Rename @llvm.debugger to @llvm.debugtrap.Dan Gohman2012-05-148-16/+16
| | | | llvm-svn: 156774
* Fix missing NEON registers for the 'register read' command with the lldb ↵Johnny Chen2012-05-143-52/+97
| | | | | | | | | | | | | | | | | | | | | | | | | | | debugserver which supports the 'qRegisterInfo' packet that dynamically discovers remote register context information. o GDBRemoteRegisterContext.h: Change the prototype of HardcodeARMRegisters() to take a boolean flag, which now becomes void HardcodeARMRegisters(bool from_scratch); o GDBRemoteRegisterContext.cpp: HardcodeARMRegisters() now checks the from_scratch flag and decides whether to add composite registers to the already existing primordial registers based on a table called g_composites which describes the composite registers. o ProcessGDBRemote.cpp: Modify the logic of ProcessGDBRemote::BuildDynamicRegisterInfo() to call m_register_info.HardcodeARMRegisters() with the newly introduced 'bool from_scrach' flag. rdar://problem/10652076 llvm-svn: 156773
* Release notes for MIPS backend.Akira Hatanaka2012-05-141-4/+10
| | | | llvm-svn: 156772
* Teach the driver on Linux to respect -nodefaultlibs.Chandler Carruth2012-05-142-13/+24
| | | | | | Patch from Andrew C. Morrow. llvm-svn: 156771
* Remove a stale forward declaration.Andrew Trick2012-05-141-1/+0
| | | | llvm-svn: 156770
* [analyzer] strncpy: Special-case a length of 0 to avoid an incorrect warning.Jordy Rose2012-05-142-0/+40
| | | | | | | | | | We check the address of the last element accessed, but with 0 calculating that address results in element -1. This patch bails out early (and avoids a bunch of other work at that). Fixes PR12807. llvm-svn: 156769
* Remove the expensive BitVector::operator~().Jakob Stoklund Olesen2012-05-142-8/+4
| | | | | | | Returning a temporary BitVector is very expensive. If you must, create the temporary explicitly: Use BitVector(A).flip() instead of ~A. llvm-svn: 156768
* Remove BitVector binops.Jakob Stoklund Olesen2012-05-141-18/+0
| | | | | | | | | | | These operators were crazy slow, calling malloc to return a temporary result. At the same time, they look very innocent when used in code. If you need temporary BitVectors to compute your thing, create them explicitly, and use the inplace logical operators. This makes the high cost explicit in the code. llvm-svn: 156767
* tsan: add more atomics to public interface (fetch_or/and/xor + 1-,2-byte ↵Dmitry Vyukov2012-05-143-0/+178
| | | | | | versions) llvm-svn: 156766
* tsan: enabled report suppression for signal-unsafe reportsDmitry Vyukov2012-05-143-3/+4
| | | | llvm-svn: 156765
* tsan: fix output_tests script to actually verify tests resultsDmitry Vyukov2012-05-141-9/+5
| | | | llvm-svn: 156764
* Consider ad hoc aliasing when building RegUnits.Jakob Stoklund Olesen2012-05-141-12/+41
| | | | | | | | | | | | | | | | | | | | | | | Register units can be used to compute if two registers overlap: A overlaps B iff units(A) intersects units(B). With this change, the above holds true even on targets that use ad hoc aliasing (currently only ARM). This means that register units can be used to implement regsOverlap() more efficiently, and the register allocator can use the concept to model interference. When there is no ad hoc aliasing, the register units correspond to the maximal cliques in the register overlap graph. This is optimal, no other register unit assignment can have fewer units. With ad hoc aliasing, weird things are possible, and we don't try too hard to compute the maximal cliques. The current approach is always correct, and it works very well (probably optimally) as long as the ad hoc aliasing doesn't have cliques larger than pairs. It seems unlikely that any target would need more. llvm-svn: 156763
* Record the ad hoc aliasing graph in CodeGenRegister.Jakob Stoklund Olesen2012-05-142-5/+21
| | | | | | | | | | | | | The ad hoc aliasing specified in the 'Aliases' list in .td files is currently only used by computeOverlaps(). It will soon be needed to build accurate register units as well, so build the undirected graph in CodeGenRegister::buildObjectGraph() instead. Aliasing is a symmetric relationship with only one direction specified in the .td files. Make sure both directions are represented in getExplicitAliases(). llvm-svn: 156762
* Compute topological signatures of registers.Jakob Stoklund Olesen2012-05-142-8/+76
| | | | | | | | | | | | | | | TableGen creates new register classes and sub-register indices based on the sub-register structure present in the register bank. So far, it has been doing that on a per-register basis, but that is not very efficient. This patch teaches TableGen to compute topological signatures for registers, and use that to reduce the amount of redundant computation. Registers get the same TopoSig if they have identical sub-register structure. TopoSigs are not currently exposed outside TableGen. llvm-svn: 156761
* Add BitVector::anyCommon().Jakob Stoklund Olesen2012-05-142-1/+39
| | | | | | The existing operation (A & B).any() is very slow. llvm-svn: 156760
* tsan: make addr2line symbolizer understand dynamic librariesDmitry Vyukov2012-05-141-71/+111
| | | | | | | Collect info about all dynamic libraries in the process (name, base, size). Determine to what dyn lib the address relates, route request to addr2line instance for the lib. llvm-svn: 156759
* tsan: update output tests to race on heap memoryDmitry Vyukov2012-05-142-10/+12
| | | | | | | Races on stack of main thread are problematic for COMPAT mapping, because it's not 1-to-1 and race addr is not properly mapped from shadow back to application memory. Update output tests to race heap memory. llvm-svn: 156758
* SwitchInst cosmetics: renamed "Hash" method to "hash"Stepan Dyatkovskiy2012-05-143-3/+3
| | | | llvm-svn: 156757
OpenPOWER on IntegriCloud