summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Handle the resolution of a reference to a function template (whichDouglas Gregor2011-02-1912-261/+593
| | | | | | | | includes explicitly-specified template arguments) to a function template specialization in cases where no deduction is performed or deduction fails. Patch by Faisal Vali, fixes PR7505! llvm-svn: 126048
* implement PR9264: disambiguating 'bt mem, imm' as a btl.Chris Lattner2011-02-192-0/+7
| | | | | | | This is reasonable to do since all bt-mem forms do the same thing. llvm-svn: 126047
* Reimplement Token::isAnnotation() using TokenKinds.def. No functionality ↵Peter Collingbourne2011-02-191-3/+5
| | | | | | change. llvm-svn: 126045
* rewrite the memset_pattern pattern generation stuff to accept any 2/4/8/16-byteChris Lattner2011-02-192-34/+39
| | | | | | | | | | | | | | | | | | constant, including globals. This makes us generate much more "pretty" pattern globals as well because it doesn't break it down to an array of bytes all the time. This enables us to handle stores of relocatable globals. This kicks in about 48 times in 254.gap, giving us stuff like this: @.memset_pattern40 = internal constant [2 x %struct.TypHeader* (%struct.TypHeader*, %struct.TypHeader*)*] [%struct.TypHeader* (%struct.TypHeader*, %struct .TypHeader*)* @IsFalse, %struct.TypHeader* (%struct.TypHeader*, %struct.TypHeader*)* @IsFalse], align 16 ... call void @memset_pattern16(i8* %scevgep5859, i8* bitcast ([2 x %struct.TypHeader* (%struct.TypHeader*, %struct.TypHeader*)*]* @.memset_pattern40 to i8* ), i64 %tmp75) nounwind llvm-svn: 126044
* Stores of null pointers should turn into memset, we weren't recognizingChris Lattner2011-02-192-0/+27
| | | | | | them as splat values. llvm-svn: 126041
* Implement rdar://9009151, transforming strided loop stores ofChris Lattner2011-02-192-32/+152
| | | | | | | | | | | unsplatable values into memset_pattern16 when it is available (recent darwins). This transforms lots of strided loop stores of ints for example, like 5 in vpr: Formed memset: call void @memset_pattern16(i8* %4, i8* getelementptr inbounds ([16 x i8]* @.memset_pattern9, i32 0, i32 0), i64 %tmp25) from store to: {%3,+,4}<%11> at: store i32 3, i32* %scevgep, align 4, !tbaa !4 llvm-svn: 126040
* Disallow try/catch/throw when exceptions are disabled.Anders Carlsson2011-02-194-0/+22
| | | | llvm-svn: 126039
* The member classes of a current instantiation aren't necessarily aDouglas Gregor2011-02-192-8/+37
| | | | | | | | | | | current instantiation, even though we have a RecordDecl describing them. Fixes PR9255. Amusingly, I've had this patch sitting around for a month or two because it was "obviously" wrong, but hadn't gotten around to writing a test case to submit the fix :) llvm-svn: 126038
* Pass -fexceptions to all tests that use try/catch/throw.Anders Carlsson2011-02-1930-41/+43
| | | | llvm-svn: 126037
* Teach the virtual-functions-without-virtual-destructor warning to onlyDouglas Gregor2011-02-192-1/+6
| | | | | | | warn about polymorphic classes (which have virtual functions) rather than dynamic classes (which are polymorphic or have virtual bases). llvm-svn: 126036
* Remove the Fix-It for "main must return 'int'", which is not alwaysDouglas Gregor2011-02-192-13/+1
| | | | | | correct and is not worth fixing. Fixes PR8396. llvm-svn: 126035
* Expand use of CharUnits for alignments further. No change in functionalityKen Dyck2011-02-191-30/+30
| | | | | | intended. llvm-svn: 126034
* Revert all of my commits that devirtualized the Decl hierarchy, whichDouglas Gregor2011-02-199-285/+133
| | | | | | | | lead to a serious slowdown (4%) on parsing of Cocoa.h. This memory optimization should be revisited later, when we have time to look at the generated code. llvm-svn: 126033
* Use PARSE_ARGUMENTS to clean up add_clang_unittest's calling convention.Jeffrey Yasskin2011-02-191-10/+20
| | | | | | | It would be nice to propagate this into the other functions to replace LLVM_LINK_COMPONENTS and friends, but I don't plan to do that. llvm-svn: 126032
* Add the PARSE_ARGUMENTS CMake macro to LLVM so I can use it to cleanJeffrey Yasskin2011-02-191-0/+80
| | | | | | up add_clang_unittest's calling convention. llvm-svn: 126031
* [analyzer] '-analyzer-check-objc-mem' can go through the llvm/clang codebase ↵Argyrios Kyrtzidis2011-02-191-7/+4
| | | | | | without crashing; enable it for C++. llvm-svn: 126026
* [analyzer] Fix crash when analyzing C++ code.Argyrios Kyrtzidis2011-02-193-2/+18
| | | | llvm-svn: 126025
* Remove support and mc from the clang unittests' dependencies because they're notJeffrey Yasskin2011-02-191-2/+2
| | | | | | | | | needed or provided by the libraries under test. The next step is to import http://www.itk.org/Wiki/CMakeMacroParseArguments to make the empty string parameter unnecessary. llvm-svn: 126024
* Driver/Darwin: Support -Wl, with -Xarch_. This doesn't work naturally because ofDaniel Dunbar2011-02-194-4/+34
| | | | | | the special way we model "linker input" arguments. llvm-svn: 126023
* Use PointerUnion::getAddrOf instead of messing with PointerUnion & ↵Argyrios Kyrtzidis2011-02-191-3/+3
| | | | | | reinterpret_cast. llvm-svn: 126021
* Change 'StoreRef' back to 'Store' in GRState, shrinking the size of GRState ↵Ted Kremenek2011-02-193-26/+50
| | | | | | back by one pointer. llvm-svn: 126020
* Allow getting the address of the value in a PointerUnion or PointerIntPair ↵Argyrios Kyrtzidis2011-02-192-0/+19
| | | | | | | | if one is confident enough that he knows what he is doing. llvm-svn: 126019
* Fix typos.Eric Christopher2011-02-191-2/+2
| | | | llvm-svn: 126018
* Fix a -Wuninitialized warning; it's actually a false positive,John McCall2011-02-191-2/+10
| | | | | | | | | but it's not reasonable for the diagnostic to figure that out. Pointed out by Benjamin Kramer. Also clarify the logic here. llvm-svn: 126017
* Warn about code that uses variables and functions with internal linkageJohn McCall2011-02-1916-42/+220
| | | | | | | | | | | | | | without defining them. This should be an error, but I'm paranoid about "uses" that end up not actually requiring a definition. I'll revisit later. Also, teach IR generation to not set internal linkage on variable declarations, just for safety's sake. Doing so produces an invalid module if the variable is not ultimately defined. Also, fix several places in the test suite where we were using internal functions without definitions. llvm-svn: 126016
* - Changed all the places where CommandObjectReturn was exporting a ↵Jim Ingham2011-02-1925-98/+318
| | | | | | | | | | | | | | | | StreamString to just exporting a Stream, and then added GetOutputData & GetErrorData to get the accumulated data. - Added a StreamTee that will tee output to two provided lldb::StreamSP's. - Made the CommandObjectReturn use this so you can Tee the results immediately to the debuggers output file, as well as saving up the results to return when the command is done executing. - HandleCommands now uses this so that if you have a set of commands that continue the target you will see the commands come out as they are processed. - The Driver now uses this to output the command results as you go, which makes the interface more reactive seeming. llvm-svn: 126015
* [analyzer] Fix crash when analyzing C++ code.Argyrios Kyrtzidis2011-02-193-6/+9
| | | | llvm-svn: 126013
* Add 'StoreRef' smart pointer to allow more fine-grain memory lifetime ↵Ted Kremenek2011-02-197-260/+347
| | | | | | | | | | | | control of Store objects. This yields a minor memory reduction (for larger functions) on Sqlite at the cost of slightly higher memory usage on some functions because of the increased size of GRState (which can be optimized). I expect the real memory savings from this enhancement will come when we aggressively canabilize more of the ExplodedGraph. llvm-svn: 126012
* Add ImmutableMap methods 'manualRetain()', 'manualRelease()', and ↵Ted Kremenek2011-02-191-1/+13
| | | | | | 'getRootWithoutRetain()' to help more aggressively reclaim memory in the static analyzer. llvm-svn: 126011
* Make the helper method ReadCoreReg(uint32_t reg, bool *success) more genericJohnny Chen2011-02-191-65/+97
| | | | | | | which now handles R0-R12, SP, LR, as well as PC. And refactored a lot of calls to ReadRegisterUnsigned() to now funnel through ReadCoreReg(), instead. llvm-svn: 126010
* Do not emit empty DW_TAG_lexical_block DIEs. In one test case, size of ↵Devang Patel2011-02-191-17/+20
| | | | | | debug info reduced by almost 7%. llvm-svn: 126009
* DIE numbers do not add any value in this test. Devang Patel2011-02-191-5/+5
| | | | llvm-svn: 126008
* [analyzer] Fix crash when analyzing C++ code.Argyrios Kyrtzidis2011-02-192-3/+5
| | | | llvm-svn: 126007
* [analyzer] Disable a test until inlining CXXConstructExprs is fully ↵Argyrios Kyrtzidis2011-02-191-0/+11
| | | | | | investigated. llvm-svn: 126006
* Give SplitAnalysis a VRM member to access VirtRegMap::getOriginal().Jakob Stoklund Olesen2011-02-193-5/+7
| | | | llvm-svn: 126005
* Avoid dangling else warnings.Joerg Sonnenberger2011-02-191-1/+2
| | | | llvm-svn: 126004
* Missed member rename for naming convention.Jakob Stoklund Olesen2011-02-192-9/+9
| | | | llvm-svn: 126003
* This method belonged in VirtRegMap.Jakob Stoklund Olesen2011-02-193-10/+10
| | | | llvm-svn: 126002
* Separate timers for local and global splitting.Jakob Stoklund Olesen2011-02-191-2/+5
| | | | llvm-svn: 126001
* Make "-opt [-emit-llvm]" work for .ll files.Mikhail Glushenkov2011-02-191-2/+4
| | | | | | Patch by Kaelyn Uhrain! llvm-svn: 126000
* Improve bool and char integral template argument printing inChandler Carruth2011-02-192-2/+49
| | | | | | | | | diagnostics, resolving PR9227. Patch originally by Mihai Rusu and Stephen Hines with some minimal style tweaks from me. llvm-svn: 125999
* Fix a missed case in the NULL operand to conditional operatorChandler Carruth2011-02-193-1/+7
| | | | | | | | diagnostics. Patch by Stephen Hines. llvm-svn: 125998
* Update the test error messages to match the update I made to the actualChandler Carruth2011-02-191-3/+3
| | | | | | messages. llvm-svn: 125997
* Fix PR8767, improve diagnostic wording when allocating an object of anChandler Carruth2011-02-187-26/+26
| | | | | | | | abstract class type. Patch by Stephen Hines, with a wording tweak from Doug applied by me. llvm-svn: 125996
* Initial steps to improve diagnostics when there is a NULL andChandler Carruth2011-02-1810-22/+140
| | | | | | | | a non-pointer on the two sides of a conditional expression. Patch by Stephen Hines and Mihai Rusu. llvm-svn: 125995
* Add code to emulate LDRB (register) Arm instruction.Caroline Tice2011-02-182-2/+163
| | | | llvm-svn: 125994
* Check for NULL child expressions before visiting them, as the firstChandler Carruth2011-02-181-1/+2
| | | | | | thing the visit does is dyn_cast<>, which leads to a nasty segfault. llvm-svn: 125993
* Add emulation methods for "ORR (immediate)" and "ORR (register)".Johnny Chen2011-02-181-8/+200
| | | | | | | Add Encoding T3 of "MOV (register)" to EmulateMOVRdRm() method and fixed some bugs in EmulateMOVRdImm() and EmulateMOVRdRm() methods. llvm-svn: 125992
* When code-completing a case statement for a switch on a value ofDouglas Gregor2011-02-185-13/+29
| | | | | | | enumeration type, prioritize the enumeration constants and don't provide completions for any other expressions. Fixes <rdar://problem/7283668>. llvm-svn: 125991
* Start using enums from DIBuilder.Devang Patel2011-02-181-9/+9
| | | | llvm-svn: 125990
OpenPOWER on IntegriCloud