summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* Check that MnemonicAlias doesn't map back to the same string.Joerg Sonnenberger2011-02-171-0/+2
| | | | llvm-svn: 125792
* Add header declarations for the remaining instructions we need toCaroline Tice2011-02-171-0/+203
| | | | | | emulate, to cover those that can change the PC. llvm-svn: 125791
* have instcombine preserve nsw/nuw/exact when sinkingChris Lattner2011-02-172-11/+71
| | | | | | common operations through a phi. llvm-svn: 125790
* Add basic register allocator statistics.Jakob Stoklund Olesen2011-02-172-0/+18
| | | | llvm-svn: 125789
* Refactoring. Abstracted the set flags operation into its own helper methodJohnny Chen2011-02-172-64/+71
| | | | | | | WriteFlags() and renamed WriteCoreRegisterWithFlags() to WriteCoreRegOptionalFlags(). Modified the call sites to use the helper methods. llvm-svn: 125788
* fix typoChris Lattner2011-02-171-1/+1
| | | | llvm-svn: 125787
* New library: LLVMX86Utils.Oscar Fuentes2011-02-172-2/+6
| | | | llvm-svn: 125786
* fix instcombine merging GEPs through a PHI to only make theChris Lattner2011-02-172-5/+10
| | | | | | result inbounds if all of the inputs are inbounds. llvm-svn: 125785
* improve support for big endian targets, fixing PR8171, patchChris Lattner2011-02-172-3/+16
| | | | | | by Heikki Kultala! llvm-svn: 125784
* CMake: updated source file list.Oscar Fuentes2011-02-171-0/+1
| | | | llvm-svn: 125783
* A8.6.6 ADD (register)Johnny Chen2011-02-172-8/+34
| | | | | | | Renamed EmulateAddRdnRm() to EmulateAddReg(), and added Encoding T1 to it. Where Encoding T2 can potentially modify the PC, causing a brnach. llvm-svn: 125782
* Add -Warray-bounds test showing how the warning currently interoperates with ↵Ted Kremenek2011-02-171-0/+11
| | | | | | macros. llvm-svn: 125781
* [analyzer] Use the new registration mechanism for the debugging info "checks".Argyrios Kyrtzidis2011-02-179-38/+100
| | | | | | | | | | The relative checker package is 'debug': '-dump-live-variables' is replaced by '-analyzer-checker=debug.DumpLiveVars' '-cfg-view' is replaced by '-analyzer-checker=debug.ViewCFG' '-cfg-dump' is replaced by '-analyzer-checker=debug.DumpCFG' llvm-svn: 125780
* [analyzer] Use the new registration mechanism on the ↵Argyrios Kyrtzidis2011-02-1727-147/+188
| | | | | | | | | | | | | non-path-sensitive-checkers: DeadStoresChecker ObjCMethSigsChecker ObjCUnusedIvarsChecker SizeofPointerChecker ObjCDeallocChecker SecuritySyntaxChecker llvm-svn: 125779
* [analyzer]Argyrios Kyrtzidis2011-02-179-51/+263
| | | | | | | | | | -Introduce CheckerV2, a set of templates for convenient declaration & registration of checkers. Currently useful just for checkers working on the AST not the path-sensitive ones. -Enhance CheckerManager to actually collect the checkers and turn it into the entry point for running the checkers. -Use the new mechanism for the LLVMConventionsChecker. llvm-svn: 125778
* [analyzer] Pass CheckerManager to the registration functions.Argyrios Kyrtzidis2011-02-1720-27/+124
| | | | llvm-svn: 125777
* Enhance constant folding of bitcast operations on vectors of floats.Nadav Rotem2011-02-175-4/+62
| | | | | | | Add getAllOnesValue of FP numbers to Constants and APFloat. Add more tests. llvm-svn: 125776
* Enhance the array bounds checking to work for several other constructs,Chandler Carruth2011-02-175-20/+83
| | | | | | | | | especially C++ code, and generally expand the test coverage. Logic adapted from a patch by Kaelyn Uhrain <rikka@google.com> and another Googler. llvm-svn: 125775
* add is always integer, thanks to Frits for noticing this.Chris Lattner2011-02-171-1/+1
| | | | llvm-svn: 125774
* Clean up the style of this function to match the conventions in the restChandler Carruth2011-02-172-29/+28
| | | | | | of Clang, and reflows the code a bit to make it easier to read. llvm-svn: 125773
* add a fixmeChris Lattner2011-02-171-0/+2
| | | | llvm-svn: 125772
* Step #2/N of __label__ support: keep pushing LabelDecl forward,Chris Lattner2011-02-1716-84/+123
| | | | | | | | | | making them be template instantiated in a more normal way and make them handle attributes like other decls. This fixes the used/unused label handling stuff, making it use the same infrastructure as other decls. llvm-svn: 125771
* Inline LocalInstantiationScope::getInstantiationOf into its oneChris Lattner2011-02-173-14/+12
| | | | | | client, making room for future hacking. llvm-svn: 125770
* remove some defensive code: LocalInstantiationScope::getInstantiationOfChris Lattner2011-02-172-7/+4
| | | | | | and findInstantiationOf can never return null, even on invalid code. llvm-svn: 125769
* remove some dead overloads.Chris Lattner2011-02-171-13/+0
| | | | llvm-svn: 125768
* Add EmulateTB() method to emulate "Table Branch Byte" and "Table Branch ↵Johnny Chen2011-02-173-0/+93
| | | | | | | | Halfword" operations for Thumb2. llvm-svn: 125767
* Add stubs for pseudocode functions "MemA[]" amd "MemU[]", corresponding to ↵Caroline Tice2011-02-172-34/+103
| | | | | | | | | | | | | | aligned and unaligned memory accesses. The new stub functions are MemARead, MemAWrite, MemURead, and MemUWrite. At the moment these stubs just call ReadMemoryUnsigned or WriteMemoryUnsigned, but we can fill them out further later if we decide we need more accurate emulation of the memory system. Replaced all the direct calls to ReadMemoryUnsigned and WriteMemoryUnsigned in EmulateInstructionARM.cpp with calls to the appropriate new stub function. llvm-svn: 125766
* [AVX] Recorganize X86ShuffleDecode into its own libraryDavid Greene2011-02-177-33/+116
| | | | | | | | | | | | (LLVMX86Utils.a) to break cyclic library dependencies between LLVMX86CodeGen.a and LLVMX86AsmParser.a. Previously this code was in a header file and marked static but AVX requires some additional functionality here that won't be used by all clients. Since including unused static functions causes a gcc compiler warning, keeping it as a header would break builds that use -Werror. Putting this in its own library solves both problems at once. llvm-svn: 125765
* Split local live ranges.Jakob Stoklund Olesen2011-02-172-2/+280
| | | | | | | | A local live range is live in a single basic block. If such a range fails to allocate, try to find a sub-range that would get a larger spill weight than its interference. llvm-svn: 125764
* Eliminate the internal command-line option for viewing inheritance in C++ ↵Douglas Gregor2011-02-178-59/+1
| | | | | | classes, since it's only really worked for the trivial cases anyway due to lame pseudo-parsing of the class name. The viewInheritance() function is still available for use in the debugger, where this is far more useful llvm-svn: 125762
* Remove the "conditional save" hashtables from IR generation.John McCall2011-02-174-23/+1
| | | | llvm-svn: 125761
* The internal -fdump-record-layouts flag already dumps the layout when it was ↵Douglas Gregor2011-02-171-24/+0
| | | | | | computed; no need to do so again at the end of the translation unit llvm-svn: 125760
* The labyrinthine X86 backend no longer appears to requireDan Gohman2011-02-171-37/+0
| | | | | | these patterns. llvm-svn: 125759
* When building StaticAnalyzer/Frontend add -I "<Checkers build dir>" to allow ↵Argyrios Kyrtzidis2011-02-173-1/+5
| | | | | | | | | | Checkers.inc to be included without '..', thus being compatible with build systems of *BSDs. Patch by Joerg Sonnenberger! llvm-svn: 125758
* Replace a FIXME with a comment describing why we did what we didDouglas Gregor2011-02-171-2/+5
| | | | llvm-svn: 125757
* Remove the last virtual member function from the Decl hierarchy,Douglas Gregor2011-02-172-5/+0
| | | | | | | | reducing the size of all declarations by one pointer. For a 64-bit Clang parsing Cocoa.h, this saves ~630k of memory (about 3.5% of ASTContext's memory usage for this header). llvm-svn: 125756
* Devirtualize TagDecl::completeDefinition().Douglas Gregor2011-02-174-20/+20
| | | | llvm-svn: 125755
* Devirtualize DeclaratorDecl::getInnerLocStart() and TagDecl::getInnerLocStart().Douglas Gregor2011-02-174-20/+27
| | | | llvm-svn: 125754
* Move Align(val, alignment) utility function to ARMUtils.h.Johnny Chen2011-02-172-5/+5
| | | | llvm-svn: 125753
* Improve diagnostics on missing property decl.Fariborz Jahanian2011-02-173-3/+4
| | | | llvm-svn: 125752
* Devirtualize NamedDecl::getNameForDiagnostic().Douglas Gregor2011-02-174-42/+27
| | | | llvm-svn: 125751
* Devirtualize RedeclarableTemplateDecl::newCommon().Douglas Gregor2011-02-172-2/+13
| | | | llvm-svn: 125750
* Fix wrong logic in promotion of signed mul-with-overflow (I pointed this out atDuncan Sands2011-02-171-18/+12
| | | | | | | | | the time but presumably my email got lost). Examples where the previous logic got it wrong: (1) a signed i8 multiply of 64 by 2 overflows, but the high part is zero; (2) a signed i8 multiple of -128 by 2 overflows, but the high part is all ones. llvm-svn: 125748
* Triple::MinGW64 is deprecated and removed. We can use Triple::MinGW32 generally.NAKAMURA Takumi2011-02-179-15/+5
| | | | | | No one uses *-mingw64. mingw-w64 is represented as {i686|x86_64}-w64-mingw32. In llvm side, i686 and x64 can be treated as similar way. llvm-svn: 125747
* Fix whitespace.NAKAMURA Takumi2011-02-172-9/+9
| | | | llvm-svn: 125746
* Implement a sub-group of -Wconversion: -Wliteral-conversion. ThisChandler Carruth2011-02-175-6/+59
| | | | | | | | | | | specifically targets literals which are implicitly converted, a those are more often unintended and trivial to fix. This can be especially helpful for diagnosing what makes 'const int x = 1e6' not an ICE. Original patch authored by Jim Meehan with contributions from other Googlers and a few cleanups from myself. llvm-svn: 125745
* Change the representation of GNU ?: expressions to use a different expressionJohn McCall2011-02-1740-429/+986
| | | | | | | | | | | | | | | | | | | | | | class and to bind the shared value using OpaqueValueExpr. This fixes an unnoticed problem with deserialization of these expressions where the deserialized form would lose the vital pointer-equality trait; or rather, it fixes it because this patch also does the right thing for deserializing OVEs. Change OVEs to not be a "temporary object" in the sense that copy elision is permitted. This new representation is not totally unawkward to work with, but I think that's really part and parcel with the semantics we're modelling here. In particular, it's much easier to fix things like the copy elision bug and to make the CFG look right. I've tried to update the analyzer to deal with this in at least some obvious cases, and I think we get a much better CFG out, but the printing of OpaqueValueExprs probably needs some work. llvm-svn: 125744
* lib/Frontend/InitHeaderSearch.cpp: Add mingw-w64's include paths.NAKAMURA Takumi2011-02-171-0/+8
| | | | llvm-svn: 125743
* Triple::MinGW64 is deprecated and removed. We can use Triple::MinGW32 instead.NAKAMURA Takumi2011-02-176-16/+4
| | | | | | No one uses *-mingw64. mingw-w64 is represented as {i686|x86_64}-w64-mingw32. llvm-svn: 125742
* Fix whitespace.NAKAMURA Takumi2011-02-174-20/+19
| | | | llvm-svn: 125741
OpenPOWER on IntegriCloud