summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* LegalizeIntegerTypes: Reorder operations in the "big shift by small amount" ↵Benjamin Kramer2012-02-292-8/+8
| | | | | | optimization, making the lives of later passes easier. llvm-svn: 151722
* Add support files required for building on Solaris.David Chisnall2012-02-297-0/+606
| | | | llvm-svn: 151721
* Solaris port. Currently sees around 200 test failures, mostly related toDavid Chisnall2012-02-299-9/+79
| | | | | | | | | | Solaris not providing some of the locales that the test suite uses. Note: This depends on an xlocale (partial) implementation for Solaris and a couple of fixed standard headers. These will be committed to a branch later today. llvm-svn: 151720
* Make the failure reporting in testit a bit more useful.David Chisnall2012-02-291-2/+4
| | | | llvm-svn: 151719
* Don't define __locale_raii if we are not going to be using it.David Chisnall2012-02-291-0/+2
| | | | llvm-svn: 151718
* Some libcxxrt-compatibility cleanups (avoid defining things twice).David Chisnall2012-02-293-30/+31
| | | | llvm-svn: 151717
* Tentatively fix PR12117. The test case from the bug now passes, and all ↵Sebastian Redl2012-02-292-8/+17
| | | | | | existing tests still pass, but there may still be corner cases. llvm-svn: 151716
* [ASan] Replace CRT .dll malloc with our implementation at asan_init() timeTimur Iskhodzhanov2012-02-291-6/+34
| | | | llvm-svn: 151715
* Fix a recursion that could happen when creating the first frame inJason Molenda2012-02-291-13/+45
| | | | | | | | | | | | | an unwind because RegisterContextLLDB::InitializeZerothFrame() would create a minimal stack frame to fetch the pc value of the current instruction. This proved fragile when another section of code was trying to create the first stack frame and UnwindLLDB called RegisterContextLLDB which tried to create its minimal stack frame. Instead, get the live RegisterContext, retrieve the pc value from the registers, and create an Address object from that. llvm-svn: 151714
* Have GVN also do condition propagation when the right-hand side is notDuncan Sands2012-02-292-11/+77
| | | | | | a constant. This fixes PR1768. llvm-svn: 151713
* Reapply r151638 and r151641.James Molloy2012-02-2916-6/+206
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The bug that was caught by Apple's internal buildbots was valid and also showed another bug in my implementation. These are now fixed, with regression tests added to catch them both (not Darwin-specific). Original log: ==================== Revert r151638 because it causes assertion hit on PCH creation for Cocoa.h Original log: --------------------- Correctly track tags and enum members defined in the prototype of a function, and ensure they are properly scoped. This fixes code such as: enum e {x, y}; int f(enum {y, x} n) { return 0; } This finally fixes PR5464 and PR5477. --------------------- I also reverted r151641 which was enhancement on top of r151638. ==================== llvm-svn: 151712
* Remove a recursive visitiation in ExprEngine that is no longer neededErik Verbruggen2012-02-292-10/+7
| | | | | | because the CFG is fully linearized. llvm-svn: 151711
* Where the alloca'd space actually lives in ram is undefined, and attempting toNick Lewycky2012-02-291-1/+6
| | | | | | pin it down is undefined behaviour. llvm-svn: 151710
* [analyzer] Tweak the UnreachableCode checker to not warning about ↵Ted Kremenek2012-02-292-0/+25
| | | | | | unreachable default blocks. Patch by Cyril Roelandt! llvm-svn: 151709
* <rdar://problem/10605072>Greg Clayton2012-02-299-52/+110
| | | | | | | | | | | | | Added the ability to override command line commands. In some cases GUI interfaces might want to intercept commands like "quit" or "process launch" (which might cause the process to re-run). They can now do so by overriding/intercepting commands by using functions added to SBCommandInterpreter using a callback function. If the callback function returns true, the command is assumed to be handled. If false is returned the command should be evaluated normally. Adopted this up in the Driver.cpp for intercepting the "quit" command. llvm-svn: 151708
* A couple minor bug-fixes for template instantiation for expressions which ↵Eli Friedman2012-02-294-12/+35
| | | | | | are sometimes potentially evaluated. llvm-svn: 151707
* [driver] Emit an error when trying to use ARC on macosx earlier than 10.6Argyrios Kyrtzidis2012-02-296-5/+22
| | | | | | rdar://10459258 llvm-svn: 151706
* Make the StackFrameList::GetFrameAtIndex only fetch as many stack frames as ↵Jim Ingham2012-02-298-180/+267
| | | | | | | | | needed to get the frame requested. <rdar://problem/10943135> llvm-svn: 151705
* This commit:Enrico Granata2012-02-2930-454/+869
| | | | | | | | | | | | | a) adds a Python summary provider for NSDate b) changes the initialization for ScriptInterpreter so that we are not passing a bulk of Python-specific function pointers around c) provides a new ScriptInterpreterObject class that allows for ref-count safe wrapping of scripting objects on the C++ side d) contains much needed performance improvements: 1) the pointer to the Python function generating a scripted summary is now cached instead of looked up every time 2) redundant memory reads in the Python ObjC runtime wrapper are eliminated 3) summaries now use the m_summary_str in ValueObject to store their data instead of passing around ( == copying) an std::string object e) contains other minor fixes, such as adding descriptive error messages for some cases of summary generation failure llvm-svn: 151703
* Add support for handling captured variables in lambda debug info.Eric Christopher2012-02-292-30/+132
| | | | | | | | | | | | This currently doesn't handle capturing the 'this' pointer for any enclosing class. Steal the lambda-expressions.cpp testcase and debugify it and try to use more variables to proof it against random changes. Part of rdar://10900684 llvm-svn: 151702
* Add some iterators for grabbing lambda expression contexts.Eric Christopher2012-02-291-0/+8
| | | | llvm-svn: 151701
* Formatting.Eric Christopher2012-02-291-1/+1
| | | | llvm-svn: 151700
* Make the odr-use logic work correctly for constant-expressions. PR12006.Eli Friedman2012-02-295-4/+25
| | | | llvm-svn: 151699
* Sema/ObjC: Override search can generate a large search list, bump the base sizeDaniel Dunbar2012-02-291-3/+4
| | | | | | | | of the SmallPtrSet way up to avoid commonly reallocating the buffer size. - I didn't see a good argument against it, so I bumped the limit to cover the max size we see during parsing Cocoa.h. llvm-svn: 151698
* ASTWriter: Cache some DenseMaps we use repeatedly.Daniel Dunbar2012-02-292-5/+16
| | | | | | | | - This reduces our total # of allocations building a PCH for Cocoa.h by almost a whopping 50%. - A SmallPtrMap would be cleaner, but since we don't have one yet... llvm-svn: 151697
* [Object] Add symbol attribute flags: ST_ThreadLocal, ST_Common, and ↵David Meyer2012-02-295-16/+38
| | | | | | | | | ST_Undefined. Implement these completely for ELF. Rename ST_External to ST_Unknown, and slightly change its semantics. It now only indicates that the symbol's type is unknown, not that the symbol is undefined. (For that, use ST_Undefined). llvm-svn: 151696
* clang/test/Analysis/stats.c: Fix up r151656.NAKAMURA Takumi2012-02-291-1/+1
| | | | llvm-svn: 151695
* Testcase for r151691.Bill Wendling2012-02-291-0/+19
| | | | llvm-svn: 151694
* Patch from Filipe Cabecinhas!Johnny Chen2012-02-292-3/+16
| | | | | | Attached is a small python fix to save the current stout and std err when starting a python session, then diverting them (as it was before), and restoring the previous values afterwards. Otherwise, a python script could suddenly find itself without output. llvm-svn: 151693
* clang/test/Analysis/stats.c: Mark this as XFAIL: mingw32.NAKAMURA Takumi2012-02-291-0/+3
| | | | | FIXME: Could we guarantee not to get stack overflow also on mingw? llvm-svn: 151692
* Restrict this transformation to equality conditions.Bill Wendling2012-02-291-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This transformation is not correct for not-equal conditions: (trunc x) != C1 & (and x, CA) != C2 -> (and x, CA|CMAX) != C1|C2 Let C1 == 0 C2 == 0 CA == 0xFF0000 CMAX == 0xFF and truncating to i8. The original truth table: x | A: trunc x != 0 | B: x & 0xFF0000 != 0 | A & B != 0 -------------------------------------------------------------- 0x00000 | 0 | 0 | 0 0x00001 | 1 | 0 | 0 0x10000 | 0 | 1 | 0 0x10001 | 1 | 1 | 1 The truth table of the replacement: x | x & 0xFF00FF != 0 ---------------------------- 0x00000 | 0 0x00001 | 1 0x10000 | 1 0x10001 | 1 So they are different. llvm-svn: 151691
* Add an analyzeVirtReg() function.Jakob Stoklund Olesen2012-02-292-0/+66
| | | | | | | | | | | | | | This function does more or less the same as MI::readsWritesVirtualRegister(), but it supports bundles as well. It also determines if any constraint requires reading and writing operands to use the same register. Most clients want to know. Use the more modern MO.readsReg() instead of trying to sort out undefs and partial redefines. Stop supporting the extra full <imp-def> operand as an alternative to <def,undef> sub-register defines. llvm-svn: 151690
* Parse: Change PragmaPackHandler to use the preprocessor allocator.Daniel Dunbar2012-02-291-7/+16
| | | | llvm-svn: 151689
* Make MemoryObject accessor members const againDerek Schuff2012-02-2916-63/+64
| | | | llvm-svn: 151687
* rdar://problem/10652076Johnny Chen2012-02-2911-474/+560
| | | | | | | | | | | | | | | | | | | Initial step -- infrastructure change -- to fix the bug. Change the RegisterInfo data structure to contain two additional fields (uint32_t *value_rges and uint32_t *invalidate_regs) to facilitate architectures which have register mapping. Update all existing RegsiterInfo arrays to have two extra NULL's (the additional fields) in each row, GDBRemoteRegisterContext.cpp is modified to add d0-d15 and q0-q15 register info entries which take advantage of the value_regs field to specify the containment relationship: d0 -> (s0, s1) ... d15 -> (s30, s31) q0 -> (d0, d1) ... q15 -> (d30, d31) llvm-svn: 151686
* Support/PathV2: Fix namespace qualifier in make_absolute(), for Win32.Daniel Dunbar2012-02-291-1/+1
| | | | llvm-svn: 151685
* Move the operand iterator into MachineInstrBundle.h where it belongs.Jakob Stoklund Olesen2012-02-293-71/+113
| | | | | | | | | Extract a base class and provide four specific sub-classes for iterating over const/non-const bundles/instructions. This eliminates the mystery bool constructor argument. llvm-svn: 151684
* objective-c modern translator. Fixes misc. bug in writing Fariborz Jahanian2012-02-291-2/+2
| | | | | | the ivar offset symbol. llvm-svn: 151683
* Remove stray semi-colon.Daniel Dunbar2012-02-291-1/+1
| | | | llvm-svn: 151682
* Support/PathV2: Fix make_absolute() to match is_absolute() and not expect toDaniel Dunbar2012-02-291-2/+6
| | | | | | | | | | find root names on Unix. - This fixes make_absolute to not basically always call current_path() on Unix systems. - I think the API probably needs cleanup in this area, but I'll let Michael handle that. llvm-svn: 151681
* Fix some stray semi-colons.Daniel Dunbar2012-02-291-3/+3
| | | | llvm-svn: 151680
* <rdar://10950312>Han Ming Ong2012-02-291-1/+10
| | | | | | Need to GetProcess() to set the uid of the process to attach. llvm-svn: 151679
* <rdar://10950196>Han Ming Ong2012-02-291-4/+12
| | | | | | Returns true when there is any info retrieved. llvm-svn: 151678
* Fixed a crasher for remote device debugging.Han Ming Ong2012-02-291-1/+1
| | | | llvm-svn: 151677
* Fix PR12080 by ensuring that MaterializeModule actually reads all the bitcodeDerek Schuff2012-02-292-4/+12
| | | | | | in the streaming case. llvm-svn: 151676
* [PathV2] Fix bug in relative_path.Michael J. Spencer2012-02-291-1/+1
| | | | llvm-svn: 151675
* Make sure list-initialization of arrays works correctly in explicit type ↵Eli Friedman2012-02-294-15/+43
| | | | | | conversions. PR12121. llvm-svn: 151674
* ARM implement TargetInstrInfo::getNoopForMachoTarget()Jim Grosbach2012-02-289-1/+66
| | | | | | | | | | | | | | Without this hook, functions w/ a completely empty body (including no epilogue) will cause an MCEmitter assertion failure. For example, define internal fastcc void @empty_function() { unreachable } rdar://10947471 llvm-svn: 151673
* Instructions inside a bundle have the same number as the bundle itself.Jakob Stoklund Olesen2012-02-281-2/+6
| | | | | | | | | | SlotIndexes are not assigned to instructions inside bundles, but it is still valid to look up the index of those instructions. The reverse getInstructionFromIndex() will return the first instruction in the bundle. llvm-svn: 151672
* In the ObjectFile interface, replace isInternal(), isAbsolute(), isGlobal(), ↵David Meyer2012-02-289-152/+74
| | | | | | and isWeak(), with a bitset of flags. llvm-svn: 151670
OpenPOWER on IntegriCloud