summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Add in some conditional compilation in order to silence an unused variable ↵Michael Gottesman2013-04-291-0/+2
| | | | | | warning. llvm-svn: 180700
* [objc-arc] Apply the RV optimization to retains next to calls in ↵Michael Gottesman2013-04-295-104/+120
| | | | | | | | | | | | | | | ObjCARCContract instead of ObjCARCOpts. Turning retains into retainRV calls disrupts the data flow analysis in ObjCARCOpts. Thus we move it as late as we can by moving it into ObjCARCContract. We leave in the conversion from retainRV -> retain in ObjCARCOpt since it enables the dataflow analysis. rdar://10813093 llvm-svn: 180698
* Added statistics to count the number of retains/releases before/after ↵Michael Gottesman2013-04-291-0/+47
| | | | | | optimization. llvm-svn: 180697
* Removed trailing whitespace.Michael Gottesman2013-04-291-1/+1
| | | | llvm-svn: 180696
* Fix for r180693. = /.Michael Gottesman2013-04-291-1/+2
| | | | llvm-svn: 180694
* [objc-arc-annotations] Moved the disabling of call movement to ↵Michael Gottesman2013-04-291-6/+5
| | | | | | ConnectTDBUTraversals so that I can prevent Changed = true from being set. This prevents an infinite loop. llvm-svn: 180693
* [lld][ELF] (no testable functionality change) resize the number of entries ↵Shankar Easwaran2013-04-293-5/+11
| | | | | | in the string table for static linking llvm-svn: 180692
* [lld][ELF] (no testable functionality change) resize the number of entries ↵Shankar Easwaran2013-04-292-6/+28
| | | | | | in the string table for static linking llvm-svn: 180691
* [lld][LayoutPass] initialize the number of entries for the densehash (no ↵Shankar Easwaran2013-04-291-18/+23
| | | | | | functionality change) llvm-svn: 180690
* Inline variable into the #ifdef block where it's used.Benjamin Kramer2013-04-281-1/+1
| | | | llvm-svn: 180688
* AArch64 InstrFormats:Jia Liu2013-04-281-1/+1
| | | | | | delete blank. llvm-svn: 180687
* Fix typo. Stupid me.Joerg Sonnenberger2013-04-271-1/+1
| | | | llvm-svn: 180686
* Regen.Eric Christopher2013-04-272-3/+4
| | | | llvm-svn: 180685
* Only use cxxabi.h's demangler, if it is actually available.Joerg Sonnenberger2013-04-276-4/+17
| | | | llvm-svn: 180684
* GCC doesn't support __has_attribute.Joerg Sonnenberger2013-04-271-0/+4
| | | | llvm-svn: 180683
* ArrayRef'ize Sema::ActOnEnumBody. No functionality change.Dmitri Gribenko2013-04-274-13/+13
| | | | | | Patch by Robert Wilhelm. llvm-svn: 180682
* Use static_cast.Joerg Sonnenberger2013-04-271-5/+8
| | | | llvm-svn: 180680
* Use reinterpret_casts directly in place of C-style casts.Joerg Sonnenberger2013-04-271-4/+4
| | | | llvm-svn: 180679
* Only use Clang pragma when compiling with clang.Joerg Sonnenberger2013-04-271-0/+2
| | | | llvm-svn: 180678
* Handle tied sub-operands in AsmMatcherEmitterUlrich Weigand2013-04-271-30/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The problem this patch addresses is the handling of register tie constraints in AsmMatcherEmitter, where one operand is tied to a sub-operand of another operand. The typical scenario for this to happen is the tie between the "write-back" register of a pre-inc instruction, and the base register sub-operand of the memory address operand of that instruction. The current AsmMatcherEmitter code attempts to handle tied operands by emitting the operand as usual first, and emitting a CVT_Tied node when handling the second (tied) operand. However, this really only works correctly if the tied operand does not have sub-operands (and isn't a sub-operand itself). Under those circumstances, a wrong MC operand list is generated. In discussions with Jim Grosbach, it turned out that the MC operand list really ought not to contain tied operands in the first place; instead, it ought to consist of exactly those operands that are named in the AsmString. However, getting there requires significant rework of (some) targets. This patch fixes the immediate problem, and at the same time makes one (small) step in the direction of the long-term solution, by implementing two changes: 1. Restricts the AsmMatcherEmitter handling of tied operands to apply solely to simple operands (not complex operands or sub-operand of such). This means that at least we don't get silently corrupt MC operand lists as output. However, if we do have tied sub-operands, they would now no longer be handled at all, except for: 2. If we have an operand that does not occur in the AsmString, and also isn't handled as tied operand, simply emit a dummy MC operand (constant 0). This works as long as target code never attempts to access MC operands that do no not occur in the AsmString (and are not tied simple operands), which happens to be the case for all targets where this situation can occur (ARM and PowerPC). [ Note that this change means that many of the ARM custom converters are now superfluous, since the implement the same "hack" now performed already by common code. ] Longer term, we ought to fix targets to never access *any* MC operand that does not occur in the AsmString (including tied simple operands), and then finally completely remove all such operands from the MC operand list. Patch approved by Jim Grosbach. llvm-svn: 180677
* Fix a XOR reassociation bug. Shuxin Yang2013-04-272-3/+33
| | | | | | | | | | When Reassociator optimize "(x | C1)" ^ "(X & C2)", it may swap the two subexpressions, however, it forgot to swap cached constants (of C1 and C2) accordingly. rdar://13739160 llvm-svn: 180676
* Documentation: end option description with a periodDmitri Gribenko2013-04-271-1/+3
| | | | | | Patch by Dimitry Andric. llvm-svn: 180675
* Documentation: Change UTF-8 ellipsis character to ASCII ... sequenceDmitri Gribenko2013-04-271-1/+1
| | | | | | Patch by Dimitry Andric llvm-svn: 180674
* Silence a silly sign compare warning from GCC.Benjamin Kramer2013-04-271-1/+1
| | | | llvm-svn: 180673
* Documentation: add an idea for a cpp14-migrate transform for N3421Dmitri Gribenko2013-04-271-0/+14
| | | | llvm-svn: 180672
* AArch64: convert MC-layer test to .s fileTim Northover2013-04-272-51/+48
| | | | | | | | The CodeGen aspects of this test are already covered by cfi-frame.ll; making it an assembly file reduces the risk of incidental changes affecting the test. llvm-svn: 180671
* Exit early when $PWD isn't set. Remove unused unistd.h include.Benjamin Kramer2013-04-271-4/+5
| | | | llvm-svn: 180670
* Use LLVM's preferred current_path API instead of calling getcwd(3) directly.Benjamin Kramer2013-04-271-5/+3
| | | | | | | The existing code also failed to allocate a buffer for it so getcwd corrupted the stack. sys::fs::current_path takes care of the memory management. llvm-svn: 180669
* [objc-arc] Test cleanups.Michael Gottesman2013-04-279-14/+40
| | | | | | | | | Mainly adding paranoid checks for the closing brace of a function to help with FileCheck error readability. Also some other minor changes. No actual CHECK changes. llvm-svn: 180668
* Generalize the MachineTraceMetrics public API.Andrew Trick2013-04-272-3/+21
| | | | | | | Naturally, we should be able to pass in extra instructions, not just extra blocks. llvm-svn: 180667
* Add target flags to MachineMemOperands.Andrew Trick2013-04-271-1/+7
| | | | | | | | | | | | | | | | | | This seems to me an obvious place to allow target passes to annotate memory operations. There are plenty of bits, and I'm not aware of another good way for early target passes to propagate hints along to later passes. Target independent transforms can simply preserve them, the way they preserve the other flags. Like MachineMemOperands in general, if the target flags are lost we must still generate correct code. This has lots of uses, but I want this flexibility now to make it easier to work with the new MachineTraceMetrics analysis. MachineTraceMetrics can gather a lot of information about instructions based on the surrounding code. This information can be used to influence postRA machine passes that don't work on SSA form. llvm-svn: 180666
* whitespaceAndrew Trick2013-04-271-11/+11
| | | | llvm-svn: 180665
* Performance optimizations to ClangUserExpression,Sean Callanan2013-04-276-61/+108
| | | | | | | | | | | | | | | | | | | | mostly related to management of the stack frame for the interpreter. - First, if the expression can be interpreted, allocate the stack frame in the target process (to make sure pointers are valid) but only read/write to the copy in the host's memory. - Second, keep the memory allocations for the stack frame and the materialized struct as member variables of ClangUserExpression. This avoids memory allocations and deallocations each time the expression runs. <rdar://problem/13043685> llvm-svn: 180664
* Fixed a crash when we tried dyn_cast<>ing aSean Callanan2013-04-271-0/+3
| | | | | | | | null pointer. <rdar://problem/13745684> llvm-svn: 180663
* Fixed the anonymous testcase. It was testingSean Callanan2013-04-271-3/+3
| | | | | | access to 'z' where 'z' was not in scope. llvm-svn: 180662
* [driver] Revert r180652 and 180658 and temporarily #define MAXPATHLEN toChad Rosier2013-04-271-2/+5
| | | | | | | | | | | make the gdb tests and the Windows bots happy. The Path::GetCurrentDirectory API is not equivalent to ::getcwd(), so r180652 causes a gdb tests to fail. On the other hand, <sys/param.h> isn't defined on Windows systems, so that causes Windows builds to fail. rdar://12237559 llvm-svn: 180661
* Use the target triple from the target machine rather than the moduleEric Christopher2013-04-274-2/+9
| | | | | | | | | | | | | | | | to determine whether or not we're on a darwin platform for debug code emitting. Solves the problem of a module with no triple on the command line and no triple in the module using non-gdb ok features on darwin. Fix up the member-pointers test to check the correct things for cross platform (DW_FORM_flag is a good prefix). Unfortunately no testcase because I have no ideas how to test something without a triple and without a triple in the module yet check precisely on two platforms. Ideas welcome. llvm-svn: 180660
* Move the XFAIL out of the middle of a comment.Eric Christopher2013-04-271-1/+1
| | | | llvm-svn: 180659
* Fix the dangling pointer.Chad Rosier2013-04-271-2/+2
| | | | llvm-svn: 180658
* Make all darwin ppc stubs local.Rafael Espindola2013-04-272-6/+14
| | | | | | | This fixes pr15763. Patch by David Fang. llvm-svn: 180657
* Struct-path aware TBAA: fix handling of may_alias attribute.Manman Ren2013-04-272-4/+15
| | | | llvm-svn: 180656
* <rdar://problem/12529989>Enrico Granata2013-04-273-7/+114
| | | | | | Synthetic children provider for NSOrderedSet llvm-svn: 180655
* Struct-path aware TBAA: change the format of TBAAStructType node.Manman Ren2013-04-273-31/+48
| | | | | | | | We switch the order of offset and field type to make TBAAStructType node (name, parent node, offset) similar to scalar TBAA node (name, parent node). TypeIsImmutable is added to TBAAStructTag node. llvm-svn: 180654
* Struct-path aware TBAA: change the format of TBAAStructType node.Manman Ren2013-04-272-14/+14
| | | | | | | We switch the order of offset and field type to make TBAAStructType node (name, parent node, offset) similar to scalar TBAA node (name, parent node). llvm-svn: 180653
* [driver] Use the llvm equivalent of getcwd(). Hopefully, this makes the WindowsChad Rosier2013-04-271-3/+2
| | | | | | | bots recover. rdar://12237559 llvm-svn: 180652
* Fix an assertion hit in Sema::CheckObjCMethodOverrides.Argyrios Kyrtzidis2013-04-272-4/+29
| | | | llvm-svn: 180651
* documenttion parsing. Provide a c-index testFariborz Jahanian2013-04-263-102/+110
| | | | | | | and limit comment extraction to public c++ bases. // rdar://13647476 llvm-svn: 180646
* Hardening to avoid null-pointer crashes in theSean Callanan2013-04-261-0/+6
| | | | | | | | presence of malformed class types. <rdar://problem/13740646> llvm-svn: 180645
* In the ASTImporter, when checking whether twoSean Callanan2013-04-261-0/+6
| | | | | | | | | structs are compatible, check whether the fields of the structs have the same name. This prevents erroneous coalescing of (in particular) anonymous structs. llvm-svn: 180644
* [libclang] Introduce clang_Module_getASTFile function that returns the ↵Argyrios Kyrtzidis2013-04-265-3/+30
| | | | | | | | module file where a module object came from. rdar://13743084 llvm-svn: 180643
OpenPOWER on IntegriCloud