summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* CMake: LLVM_NO_RTTI must be obsolete now!NAKAMURA Takumi2011-02-1021-42/+0
| | | | llvm-svn: 125275
* CMake: LLVM_NO_RTTI must be obsolete now!NAKAMURA Takumi2011-02-101-2/+0
| | | | llvm-svn: 125274
* lit/TestFormats.py: Unittests may be found with suffix .exe also on Cygwin.NAKAMURA Takumi2011-02-101-2/+2
| | | | llvm-svn: 125273
* lit/Util.py: On Cygwin, 'PATHEXT' may exist but it should not be used.NAKAMURA Takumi2011-02-101-1/+5
| | | | llvm-svn: 125272
* implement the first part of PR8882: when lowering an inboundsChris Lattner2011-02-103-10/+33
| | | | | | | | | | | | | | | | | | | | | | | | | | gep to explicit addressing, we know that none of the intermediate computation overflows. This could use review: it seems that the shifts certainly wouldn't overflow, but could the intermediate adds overflow if there is a negative index? Previously the testcase would instcombine to: define i1 @test(i64 %i) { %p1.idx.mask = and i64 %i, 4611686018427387903 %cmp = icmp eq i64 %p1.idx.mask, 1000 ret i1 %cmp } now we get: define i1 @test(i64 %i) { %cmp = icmp eq i64 %i, 1000 ret i1 %cmp } llvm-svn: 125271
* switch the constantexpr, target folder, and IRBuilder interfacesChris Lattner2011-02-105-202/+145
| | | | | | | for NSW/NUW binops to follow the pattern of exact binops. This allows someone to use Builder.CreateAdd(x, y, "tmp", MaybeNUW); llvm-svn: 125270
* Fixed a crasher when enabling logging that is due to the new hijack listener ↵Greg Clayton2011-02-101-3/+12
| | | | | | stack changes. llvm-svn: 125269
* Move the check that gives functions with unique-external types unique-externalJohn McCall2011-02-104-5/+33
| | | | | | | linkage into Decl.cpp. Disable this logic for extern "C" functions, because the operative rule there is weaker. Fixes rdar://problem/8898466 llvm-svn: 125268
* Enhance a bunch of transformations in instcombine to start generatingChris Lattner2011-02-1012-160/+196
| | | | | | | | | | | exact/nsw/nuw shifts and have instcombine infer them when it can prove that the relevant properties are true for a given shift without them. Also, a variety of refactoring to use the new patternmatch logic thrown in for good luck. I believe that this takes care of a bunch of related code quality issues attached to PR8862. llvm-svn: 125267
* Enhance the "compare with shift" and "compare with div" Chris Lattner2011-02-103-74/+151
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | optimizations to be much more aggressive in the face of exact/nsw/nuw div and shifts. For example, these (which are the same except the first is 'exact' sdiv: define i1 @sdiv_icmp4_exact(i64 %X) nounwind { %A = sdiv exact i64 %X, -5 ; X/-5 == 0 --> x == 0 %B = icmp eq i64 %A, 0 ret i1 %B } define i1 @sdiv_icmp4(i64 %X) nounwind { %A = sdiv i64 %X, -5 ; X/-5 == 0 --> x == 0 %B = icmp eq i64 %A, 0 ret i1 %B } compile down to: define i1 @sdiv_icmp4_exact(i64 %X) nounwind { %1 = icmp eq i64 %X, 0 ret i1 %1 } define i1 @sdiv_icmp4(i64 %X) nounwind { %X.off = add i64 %X, 4 %1 = icmp ult i64 %X.off, 9 ret i1 %1 } This happens when you do something like: (ptr1-ptr2) == 42 where the pointers are pointers to non-unit types. llvm-svn: 125266
* more cleanups, notably bitcast isn't used for "signed to unsigned type Chris Lattner2011-02-102-46/+28
| | | | | | conversions". :) llvm-svn: 125265
* A bunch of cleanups and simplifications using the new PatternMatch predicatesChris Lattner2011-02-101-176/+132
| | | | | | | | | | and generally tidying things up. Only very trivial functionality changes like now doing (-1 - A) -> (~A) for vectors too. InstCombineAddSub.cpp | 296 +++++++++++++++++++++----------------------------- 1 file changed, 126 insertions(+), 170 deletions(-) llvm-svn: 125264
* teach SimplifyDemandedBits that exact shifts demand the bits they Chris Lattner2011-02-101-3/+23
| | | | | | | are shifting out since they do require them to be zeros. Similarly for NUW/NSW bits of shl llvm-svn: 125263
* Run ~GRState() when reclaiming GRStates.Ted Kremenek2011-02-101-0/+1
| | | | llvm-svn: 125262
* static analyzer: Make GRStates reference counted, with reference counts ↵Ted Kremenek2011-02-103-16/+28
| | | | | | | | managed by ExplodedNodes. This reduces memory usage of the analyzer on sqlite by another 5%. llvm-svn: 125260
* After 3-addressifying a two-address instruction, update the register maps; ↵Evan Cheng2011-02-102-14/+31
| | | | | | add a missing check when considering whether it's profitable to commute. rdar://8977508. llvm-svn: 125259
* Add EmulateLDRRtRnImm() for EncodingT1 of LDR (immediate, Thumb) to the ↵Johnny Chen2011-02-102-1/+120
| | | | | | | | g_thumb_opcodes table, and a helper method UnalignedSupport(). llvm-svn: 125258
* Revert this in an attempt to bring the builders back.Eric Christopher2011-02-101-4/+4
| | | | llvm-svn: 125257
* Don't return before calling the post-processing function(s).Bill Wendling2011-02-101-1/+0
| | | | llvm-svn: 125256
* Add a new function to Debugger for finding the top/current Caroline Tice2011-02-102-28/+41
| | | | | | | | | input reader. Always make sure the input reader stack is not empty before trying to get the top element from the stack. llvm-svn: 125255
* Turn this pass ordering:Cameron Zwarich2011-02-101-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | Natural Loop Information Loop Pass Manager Canonicalize natural loops Scalar Evolution Analysis Loop Pass Manager Induction Variable Users Canonicalize natural loops Induction Variable Users Loop Strength Reduction into this: Scalar Evolution Analysis Loop Pass Manager Canonicalize natural loops Induction Variable Users Loop Strength Reduction This fixes <rdar://problem/8869639>. I also filed PR9184 on doing this sort of thing automatically, but it seems easier to just change the ordering of the passes if this is the only case. llvm-svn: 125254
* Add hack to CMakeLists.txt so that StaticAnalyzer libraries find their ↵Ted Kremenek2011-02-101-0/+3
| | | | | | | | | | corresponding headers. This is a hack because we really should only search in the 'include/clang/StaticAnalyzer' directory if we are in 'lib/StaticAnalyzer'. My CMake knowledge is limited, so I appeal to anyone with more expertise. llvm-svn: 125252
* Split 'include/clang/StaticAnalyzer' into ↵Ted Kremenek2011-02-10116-260/+260
| | | | | | | | 'include/clang/StaticAnalyzer/Core' and 'include/clang/StaticAnalyzer/Checkers'. This layout matches lib/StaticAnalyzer, which corresponds to two StaticAnalyzer libraries. llvm-svn: 125251
* test case for r125249.Devang Patel2011-02-101-0/+70
| | | | llvm-svn: 125250
* If an aggregate is returned as 'sret' argument then let debugger know about ↵Devang Patel2011-02-101-0/+6
| | | | | | this. llvm-svn: 125249
* Do AsmMatcher operand classification per-opcode.Jim Grosbach2011-02-102-89/+29
| | | | | | | | | | When matching operands for a candidate opcode match in the auto-generated AsmMatcher, check each operand against the expected operand match class. Previously, operands were classified independently of the opcode being handled, which led to difficulties when operand match classes were more complicated than simple subclass relationships. llvm-svn: 125245
* Add a new member variable m_new_inst_cpsr to catch the to-be-updated stateJohnny Chen2011-02-092-4/+7
| | | | | | | | of the CPSR during the course of executing an opcode, and modified SelectInstrSet() to update this variable instead of the original m_inst_cpsr, which should be the cached copy of the CPSR at the beginning of executing the opcode. llvm-svn: 125244
* Delete unused code for analyzing and splitting around loops.Jakob Stoklund Olesen2011-02-092-389/+2
| | | | | | | Loop splitting is better handled by the more generic global region splitting based on the edge bundle graph. llvm-svn: 125243
* Add EmulateAddRdnRm() for EncodingT2 of ADD(register) to the g_thumb_opcodes ↵Johnny Chen2011-02-092-0/+104
| | | | | | | | table, and a helper method ALUWritePC(Context&, uint32_t). llvm-svn: 125241
* Modified version of a patch from Warren Paul that takes care of issues withGreg Clayton2011-02-093-87/+76
| | | | | | | indirect forms, deals with empty DW_AT_comp_dir attributes, and fixups for handling other signed integer types. llvm-svn: 125240
* Rip out realpath() support. It's expensive, and often a bad idea, andDouglas Gregor2011-02-092-39/+0
| | | | | | I have another way to achieve the same goal. llvm-svn: 125239
* Simplify using the new leaveIntvBefore()Jakob Stoklund Olesen2011-02-091-13/+2
| | | | llvm-svn: 125238
* Use the LiveBLocks array for SplitEditor::splitSingleBlocks() as well.Jakob Stoklund Olesen2011-02-092-44/+47
| | | | | | | This fixes a bug where splitSingleBlocks() could split a live range after a terminator instruction. llvm-svn: 125237
* Attempt to fix the build after r125228.Cameron Zwarich2011-02-091-2/+2
| | | | llvm-svn: 125236
* Update clang-wpa to pass extra argument to AnalysisManager constructor.Ted Kremenek2011-02-091-1/+2
| | | | llvm-svn: 125235
* Typo.Mikhail Glushenkov2011-02-091-1/+1
| | | | llvm-svn: 125232
* Move calcLiveBlockInfo() and the BlockInfo struct into SplitAnalysis.Jakob Stoklund Olesen2011-02-095-145/+143
| | | | | | No functional changes intended. llvm-svn: 125231
* Add target triple.Devang Patel2011-02-091-1/+1
| | | | llvm-svn: 125230
* Fix scoping of method declarations and issue Fariborz Jahanian2011-02-098-11/+77
| | | | | | | warning when same parameter name used multiple times. // rdar://8877730 llvm-svn: 125229
* Add llvm::sys::path::canonical(), which provides the canonicalizedDouglas Gregor2011-02-092-0/+39
| | | | | | | | | | name of a path, after resolving symbolic links and eliminating excess path elements such as "foo/../" and "./". This routine still needs a Windows implementation, but I don't have a Windows machine available. Help? Please? llvm-svn: 125228
* Modified existing Emulate* methods to call LoadWritePC(context, data) where ↵Johnny Chen2011-02-091-3/+6
| | | | | | | | appropriate to effect an interworking branch if the ArchVersion() is ARMv5T and above. llvm-svn: 125227
* Ignore <undef> uses when analyzing and rewriting.Jakob Stoklund Olesen2011-02-091-2/+14
| | | | llvm-svn: 125226
* Assert on bad jump tables.Jakob Stoklund Olesen2011-02-091-0/+1
| | | | llvm-svn: 125225
* Add tags to live interval unions to avoid using stale queries.Jakob Stoklund Olesen2011-02-092-2/+15
| | | | | | | The tag is updated whenever the live interval union is changed, and it is tested before using cached information. llvm-svn: 125224
* Missed part of a patch from Stephen Wilson.Greg Clayton2011-02-091-0/+1
| | | | llvm-svn: 125220
* Parse: add support for parsing CUDA kernel callsPeter Collingbourne2011-02-097-10/+119
| | | | llvm-svn: 125219
* Lexer: add CUDA kernel call tokensPeter Collingbourne2011-02-092-0/+12
| | | | llvm-svn: 125218
* AST, Sema, Serialization: add CUDAKernelCallExpr and related semantic actionsPeter Collingbourne2011-02-0918-23/+184
| | | | llvm-svn: 125217
* AST, Sema, Serialization: keep track of cudaConfigureCallPeter Collingbourne2011-02-099-1/+60
| | | | llvm-svn: 125216
* Fix comparator used for looking up previously instantiated EDDisassemblers.Shantonu Sen2011-02-091-2/+4
| | | | | | | | | Now, Syntax is only used as a tie-breaker if the Arch matches. Previously, a request for x86_64 disassembler followed by the i386 disassembler in a single process would return the cached x86_64 disassembler. Fixes <rdar://problem/8958982> llvm-svn: 125215
OpenPOWER on IntegriCloud