summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Changed test to check for correct load size instead of shift as the shift ↵Pete Cooper2011-10-271-1/+1
| | | | | | might change if optimised llvm-svn: 143116
* Move ASTUnit's handling of temporary files and the preamble file into a ↵Ted Kremenek2011-10-274-35/+112
| | | | | | lazily-created static DenseMap. This DenseMap is cleared (and the files erased) via an atexit routine in the case an ASTUnit is not destroyed. Fixes <rdar://problem/10293367>. llvm-svn: 143115
* Added support for the new ".apple_objc" accelerator tables. These tables areGreg Clayton2011-10-2724-169/+352
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | in the same hashed format as the ".apple_names", but they map objective C class names to all of the methods and class functions. We need to do this because in the DWARF the methods for Objective C are never contained in the class definition, they are scattered about at the translation unit level and they don't even have attributes that say the are contained within the class itself. Added 3 new formats which can be used to display data: eFormatAddressInfo eFormatHexFloat eFormatInstruction eFormatAddressInfo describes an address such as function+offset and file+line, or symbol + offset, or constant data (c string, 2, 4, 8, or 16 byte constants). The format character for this is "A", the long format is "address". eFormatHexFloat will print out the hex float format that compilers tend to use. The format character for this is "X", the long format is "hex float". eFormatInstruction will print out disassembly with bytes and it will use the current target's architecture. The format character for this is "i" (which used to be being used for the integer format, but the integer format also has "d", so we gave the "i" format to disassembly), the long format is "instruction". Mate the lldb::FormatterChoiceCriterion enumeration private as it should have been from the start. It is very specialized and doesn't belong in the public API. llvm-svn: 143114
* Trailing whitespace.Jim Grosbach2011-10-271-3/+3
| | | | llvm-svn: 143113
* Change the sysexit mnemonic (and sysexitl) to never have the REX.W prefix andKevin Enderby2011-10-275-3/+24
| | | | | | | not depend on In32BitMode. Use the sysexitq mnemonic for the version with the REX.W prefix and only allow it only In64BitMode. rdar://9738584 llvm-svn: 143112
* [libclang] Add comments.Argyrios Kyrtzidis2011-10-271-0/+339
| | | | llvm-svn: 143111
* Thumb2 t2LDMDB[_UPD] assembly parsing to recognize .w suffix.Jim Grosbach2011-10-272-0/+10
| | | | | | rdar://10348844 llvm-svn: 143110
* Expose relocation accessors through the libObject C API.Owen Anderson2011-10-272-0/+55
| | | | llvm-svn: 143109
* Thumb2 t2MVNi assembly parsing to recognize ".w" suffix.Jim Grosbach2011-10-272-3/+5
| | | | | | rdar://10348584 llvm-svn: 143108
* Add relocation iterators to the libObject C API.Owen Anderson2011-10-272-0/+43
| | | | llvm-svn: 143107
* BlockFrequency: Use a smarter overflow check.Benjamin Kramer2011-10-271-4/+8
| | | | | | This trades one 64 bit div for one 64 bit mul and some arithmetic. llvm-svn: 143106
* Windows port work by Ruben Van BoxemHoward Hinnant2011-10-276-9/+188
| | | | llvm-svn: 143105
* Fixed bug in __independent_bits_engine found by Nick (from stackoverflow)Howard Hinnant2011-10-271-2/+2
| | | | llvm-svn: 143104
* Revert Duncan's r143028 expression folding which appears to be the culpritBob Wilson2011-10-272-77/+4
| | | | | | behind a compile failure on 483.xalancbmk. llvm-svn: 143102
* LLLexer: Factor hex char parsing.Benjamin Kramer2011-10-271-38/+16
| | | | llvm-svn: 143101
* Make the loading of information attached to an IdentifierInfo from anDouglas Gregor2011-10-2716-140/+362
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | AST file more lazy, so that we don't eagerly load that information for all known identifiers each time a new AST file is loaded. The eager reloading made some sense in the context of precompiled headers, since very few identifiers were defined before PCH load time. With modules, however, a huge amount of code can get parsed before we see an @import, so laziness becomes important here. The approach taken to make this information lazy is fairly simple: when we load a new AST file, we mark all of the existing identifiers as being out-of-date. Whenever we want to access information that may come from an AST (e.g., whether the identifier has a macro definition, or what top-level declarations have that name), we check the out-of-date bit and, if it's set, ask the AST reader to update the IdentifierInfo from the AST files. The update is a merge, and we now take care to merge declarations before/after imports with declarations from multiple imports. The results of this optimization are fairly dramatic. On a small application that brings in 14 non-trivial modules, this takes modules from being > 3x slower than a "perfect" PCH file down to 30% slower for a full rebuild. A partial rebuild (where the PCH file or modules can be re-used) is down to 7% slower. Making the PCH file just a little imperfect (e.g., adding two smallish modules used by a bunch of .m files that aren't in the PCH file) tips the scales in favor of the modules approach, with 24% faster partial rebuilds. This is just a first step; the lazy scheme could possibly be improved by adding versioning, so we don't search into modules we already searched. Moreover, we'll need similar lazy schemes for all of the other lookup data structures, such as DeclContexts. llvm-svn: 143100
* Teach format string analysis that "%zu" means size_t.Hans Wennborg2011-10-274-11/+40
| | | | | | | | The code had it backwards, thinking size_t was signed, and using that for "%zd". Also let the analysis get the types for (u)intmax_t while we are at it. llvm-svn: 143099
* Move these test from checking assembly to checking LLVM IR. Should fix falloutNick Lewycky2011-10-276-28/+16
| | | | | | from r143097. llvm-svn: 143098
* Teach our Dwarf emission to use the string pool.Nick Lewycky2011-10-2714-54/+139
| | | | llvm-svn: 143097
* Liberalized the "id" check a little; now "id" canSean Callanan2011-10-271-3/+5
| | | | | | be found in namespaces. llvm-svn: 143096
* Don't crash on 128-bit sdiv by constant. Found by inspection.Eli Friedman2011-10-272-9/+30
| | | | llvm-svn: 143095
* Disabled lookups for the Objective-C builtin type "id;"Sean Callanan2011-10-271-21/+26
| | | | | | the compiler should pick this type up automatically. llvm-svn: 143094
* It is not safe to sink an alloca into a stacksave/stackrestore pair, so ↵Eli Friedman2011-10-272-14/+40
| | | | | | don't do that. <rdar://problem/10352360> llvm-svn: 143093
* Updated the grossly out of date status page.Greg Clayton2011-10-271-26/+16
| | | | llvm-svn: 143092
* [analyzer] Optimize by not generating empty transitions in CheckerContextAnna Zaks2011-10-271-1/+3
| | | | | | Go not generate a new transition by addTransition methods if nothing changed. llvm-svn: 143091
* [analyzer] Move enqueueEndOfFunction into CoreEngine.Anna Zaks2011-10-273-32/+37
| | | | llvm-svn: 143090
* [analyzer] Make CoreEngine responsible for enqueueing Stmt Nodes.Anna Zaks2011-10-273-65/+68
| | | | | | | | Enqueue the nodes generated as the result of processing a statement inside the Core Engine. This makes sure ExpEngine does not access CoreEngine's private members and is more concise. llvm-svn: 143089
* Make use of the parameter in Sema::ActOnObjCTemporaryExitContainerContext.Argyrios Kyrtzidis2011-10-271-1/+2
| | | | llvm-svn: 143088
* Add display of min and max samples to Stopwatch's string representation.Johnny Chen2011-10-272-3/+24
| | | | llvm-svn: 143087
* A branch predicated on a constant can just FastEmit an unconditional branch.Chad Rosier2011-10-272-0/+53
| | | | llvm-svn: 143086
* Fix crash on an @interface nested inside @implementation, rdar://10336158Argyrios Kyrtzidis2011-10-274-7/+20
| | | | llvm-svn: 143085
* For the "'@end' is missing in implementation context" point at the location ↵Argyrios Kyrtzidis2011-10-271-1/+1
| | | | | | of '@'. llvm-svn: 143084
* Added an extra parameter to the object-checkerSean Callanan2011-10-273-25/+53
| | | | | | | | functions in the Objective-C language runtime that is set to the selector that is being passed to the object. llvm-svn: 143083
* Do not warn when weak-import attribute is applied to enumFariborz Jahanian2011-10-262-1/+9
| | | | | | | decl. in Darwin due to certain projects requirement. // rdar://10277579 llvm-svn: 143082
* Rename NonScalarIntSafe to something more appropriate.Lang Hames2011-10-266-15/+15
| | | | llvm-svn: 143080
* Add a TODO comment. FastISel works by parsing each basic block from the bottomChad Rosier2011-10-261-0/+1
| | | | | | | | up. Thus, improving the support for compares is goodness because it increases the number of terminator instructions we can handle. This creates many more opportunities for target specific fast-isel. llvm-svn: 143079
* Factor a little more code into EmitCmp, which should have been done in the firstChad Rosier2011-10-261-23/+16
| | | | | | place. No functional change intended. llvm-svn: 143078
* Disalbe more Microsoft-specific stuff.Douglas Gregor2011-10-261-1/+1
| | | | llvm-svn: 143077
* Use EmitCmp in SelectBranch. No functional change intended.Chad Rosier2011-10-261-33/+6
| | | | llvm-svn: 143076
* Establish a baseline for bench.py score by using a fixed lldb executable as theJohnny Chen2011-10-265-23/+62
| | | | | | | | | | inferior program for the lldb debugger to operate on. The fixed lldb executable corresponds to r142902. Plus some minor modifications to the test benchmark to conform to way bench.py is meant to be invoked. llvm-svn: 143075
* Reflow lines, fix comments for doxygen style, fix whitespace. No functionalityNick Lewycky2011-10-263-37/+30
| | | | | | change. llvm-svn: 143074
* Add include-what-you-use to the External Projects list.Bill Wendling2011-10-261-0/+12
| | | | llvm-svn: 143073
* Factor out an EmitCmp function that can be used by both SelectCmp andChad Rosier2011-10-261-18/+24
| | | | | | SelectBranch. No functional change intended. llvm-svn: 143072
* Trailing whitespace.Jim Grosbach2011-10-261-2/+2
| | | | llvm-svn: 143071
* Thumb2 ldr pc-relative encoding fixes.Jim Grosbach2011-10-263-15/+27
| | | | | | | | | We were parsing label references to the i12 encoding, which isn't right. They need to go to the pci variant instead. More of rdar://10348687 llvm-svn: 143068
* Run test with -verify-machineinstrs.Rafael Espindola2011-10-261-2/+2
| | | | | | Patch by Sanjoy Das. llvm-svn: 143066
* Extended the IR interpreter to handle the variablesSean Callanan2011-10-263-42/+136
| | | | | | | | | | | | | | | | | | | | "_cmd", "this", and "self". These variables are handled differently from all other external variables used by the expression. Other variables are used indirectly through the $__lldb_arg operand; only _cmd, this, and self are passed directly through the ABI. There are two modifications: - I added a function to ClangExpressionDeclMap that retrives the value of one of these variables by name; and - I made IRInterpreter fetch these values when needed, and ensured that the proper level of indirection is used. llvm-svn: 143065
* Fixes an issue reported by -verify-machineinstrs.Rafael Espindola2011-10-263-11/+17
| | | | | | Patch by Sanjoy Das. llvm-svn: 143064
* ARM parse parenthesized expressions for label references.Jim Grosbach2011-10-261-0/+1
| | | | | | Partial fix for rdar://10348687. llvm-svn: 143063
* This commit introduces two fake instructions MORESTACK_RET andRafael Espindola2011-10-264-22/+40
| | | | | | | | | | | | MORESTACK_RET_RESTORE_R10; which are lowered to a RET and a RET followed by a MOV respectively. Having a fake instruction prevents the verifier from seeing a MachineBasicBlock end with a non-terminator (MOV). It also prevents the rather eccentric case of a MachineBasicBlock ending with RET but having successors nevertheless. Patch by Sanjoy Das. llvm-svn: 143062
OpenPOWER on IntegriCloud