summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Remove dead code.Rafael Espindola2011-06-301-88/+0
| | | | llvm-svn: 134148
* Add support for weakly imported classes (GNU runtime).David Chisnall2011-06-301-5/+8
| | | | llvm-svn: 134140
* Fixed enum constant evaluation assertions.Abramo Bagnara2011-06-301-6/+13
| | | | llvm-svn: 134139
* Improve the wording of the warning when returning a value fromChandler Carruth2011-06-302-3/+13
| | | | | | | | a constructor or destructor. Patch by Hans Wennborg. llvm-svn: 134138
* Preserve that a TemplateName was arrived at by substitutingJohn McCall2011-06-3013-53/+246
| | | | | | | | | | | for a template template parameter. Uses to follow. I've also made the uniquing of SubstTemplateTemplateParmPacks use a ContextualFoldingSet as a minor space efficiency. llvm-svn: 134137
* Fix an obvious typo in an attribute's diagnostics.Chandler Carruth2011-06-301-1/+1
| | | | | | | | | | | Patch by Caitlin Sadowski. Unfortunately, this attribute doesn't seem to have a single test. It is only mentioned in comments in one test, and as a string literal in a copy of some Clang code checked in as a test for the Indexer. =[ It dates from 2009 r74280 as part of OpenCL 1.0. llvm-svn: 134136
* Restructure to be modular instead of a single big function;Jason Molenda2011-06-301-173/+265
| | | | | | | | should make it a little easier to use this as an example of how to fetch all the different bits of information about threads. llvm-svn: 134135
* The enum was moved to ISDOpcodes.h.Duncan Sands2011-06-301-1/+1
| | | | llvm-svn: 134134
* Centralize all of the type name code so that we always strip the leadingGreg Clayton2011-06-3018-93/+94
| | | | | | | | "struct ", "class ", and "union " from the start of any type names that are extracted from clang QualType objects. I had to fix test suite cases that were expecting the struct/union/class prefix to be there. llvm-svn: 134132
* Kill dead code.Jim Grosbach2011-06-301-1/+0
| | | | llvm-svn: 134131
* Size reducing SP adjusting t2ADDri needs to check predication.Jim Grosbach2011-06-301-1/+4
| | | | | | | tADDrSPi is not predicable, so we can't size-reduce a t2ADDri to it if the predicate is anything other than "always." llvm-svn: 134130
* Fix ARMSubtarget feature parsing.Evan Cheng2011-06-301-10/+7
| | | | llvm-svn: 134129
* createTargetMachine now takes a CPU string.Evan Cheng2011-06-302-4/+5
| | | | llvm-svn: 134128
* Fix the ridiculous SubtargetFeatures API where it implicitly expects CPU name toEvan Cheng2011-06-3068-236/+271
| | | | | | | | | | be the first encoded as the first feature. It then uses the CPU name to look up features / scheduling itineray even though clients know full well the CPU name being used to query these properties. The fix is to just have the clients explictly pass the CPU name! llvm-svn: 134127
* Recognize the xstorerng alias for VIA PadLock's xstore instruction.Joerg Sonnenberger2011-06-302-0/+6
| | | | llvm-svn: 134126
* Reapply r134047 now that the world is ready for it.Jakob Stoklund Olesen2011-06-303-138/+291
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch will sometimes choose live range split points next to interference instead of always splitting next to a register point. That means spill code can now appear almost anywhere, and it was necessary to fix code that didn't expect that. The difficult places were: - Between a CALL returning a value on the x87 stack and the corresponding FpPOP_RETVAL (was FpGET_ST0). Probably also near x87 inline assembly, but that didn't actually show up in testing. - Between a CALL popping arguments off the stack and the corresponding ADJCALLSTACKUP. Both are fixed now. The only place spill code can't appear is after terminators, see SplitAnalysis::getLastSplitPoint. Original commit message: Rewrite RAGreedy::splitAroundRegion, now with cool ASCII art. This function has to deal with a lot of special cases, and the old version got it wrong sometimes. In particular, it would sometimes leave multiple uses in the stack interval in a single block. That causes bad code with multiple reloads in the same basic block. The new version handles block entry and exit in a single pass. It first eliminates all the easy cases, and then goes on to create a local interval for the blocks with difficult interference. Previously, we would only create the local interval for completely isolated blocks. It can happen that the stack interval becomes completely empty because we could allocate a register in all edge bundles, and the new local intervals deal with the interference. The empty stack interval is harmless, but we need to remove a SplitKit assertion that checks for empty intervals. llvm-svn: 134125
* indvars -disable-iv-rewrite: handle an edge case involving identity phis.Andrew Trick2011-06-302-10/+40
| | | | llvm-svn: 134124
* Remove getRegClassForInlineAsmConstraint and all dependencies.Eric Christopher2011-06-303-115/+0
| | | | | | Fixes rdar://9643582 llvm-svn: 134123
* Make sure we use the correct register class here since we'll need toEric Christopher2011-06-301-1/+2
| | | | | | care about spill values. llvm-svn: 134122
* Fix a small thinko for constant i64 lock/orq optimization where weEric Christopher2011-06-302-2/+22
| | | | | | | | we didn't have an opcode for 64-bit constant or expressions. Fixes rdar://9692967 llvm-svn: 134121
* Document and check tighter assumptions about the TemplateName of aJohn McCall2011-06-302-17/+25
| | | | | | TemplateSpecializationType. llvm-svn: 134120
* * Use the proper size to output the range size.Bill Wendling2011-06-301-1/+8
| | | | | | * Rough in the compact encoding part. llvm-svn: 134119
* While we are at it, let's also exercise the similar ↵Johnny Chen2011-06-301-7/+21
| | | | | | | | | | SBModule.FindGlobalVariables() API within the find_global_variables() test method. Skipping test_find_global_variables_with_dwarf(self) due to segmentation fault. llvm-svn: 134118
* Stupid error: If the LSDA and Personality functions aren't there, emit 0 insteadBill Wendling2011-06-291-10/+8
| | | | | | of the encoding. llvm-svn: 134117
* Revert r133953 for now.Devang Patel2011-06-294-148/+0
| | | | llvm-svn: 134116
* We don't want to use relocations inside the compact unwind section. Just use theBill Wendling2011-06-291-4/+19
| | | | | | symbols instead. llvm-svn: 134115
* Remove redundant Thumb2 ADD/SUB SP instruction definitions.Jim Grosbach2011-06-297-118/+56
| | | | | | | | | | Unlike Thumb1, Thumb2 does not have dedicated encodings for adjusting the stack pointer. It can just use the normal add-register-immediate encoding since it can use all registers as a source, not just R0-R7. The extra instruction definitions are just duplicates of the normal instructions with the (not well enforced) constraint that the source register was SP. llvm-svn: 134114
* Always adjust the stack pointer immediately after the call.Jakob Stoklund Olesen2011-06-291-0/+7
| | | | | | | | | | | | | | | | | | | Some x86-32 calls pop values off the stack, and we need to readjust the stack pointer after the call. This happens when ADJCALLSTACKUP is eliminated. It could happen that spill code was inserted between the CALL and ADJCALLSTACKUP instructions, and we would compute wrong stack pointer offsets for those frame index references. Fix this by inserting the stack pointer adjustment immediately after the call instead of where the ADJCALLSTACKUP instruction was erased. I don't have a test case since we don't currently insert code in that position. We will soon, though. I am testing a regalloc patch that didn't work on Linux because of this. llvm-svn: 134113
* indvars -disable-iv-rewrite: insert new trunc instructions carefully.Andrew Trick2011-06-292-15/+52
| | | | llvm-svn: 134112
* Added IRBuilder::SetInsertPoint(Use) to find a valid insertion pointAndrew Trick2011-06-291-0/+19
| | | | | | that dominates the given Use. llvm-svn: 134111
* whitespaceAndrew Trick2011-06-291-8/+8
| | | | llvm-svn: 134110
* Add test cases to TestTargetAPI.py to exercise the newly added ↵Johnny Chen2011-06-292-0/+33
| | | | | | SBTarget.FindGlobalVariables() API. llvm-svn: 134109
* This commit adds a new top subcommand "summary" to command type named ↵Enrico Granata2011-06-2915-221/+1377
| | | | | | | | | | | | | | | | | | | | | | | "type". Currently this command implements three commands: type summary add <format> <typename1> [<typename2> ...] type summary delete <typename1> [<typename2> ...] type summary list [<typename1> [<typename2>] ...] type summary clear This allows you to specify the default format that will be used to display summaries for variables, shown when you use "frame variable" or "expression", or the SBValue classes. Examples: type summary add "x = ${var.x}" Point type summary list type summary add --one-liner SimpleType llvm-svn: 134108
* Add fuzz calls for SBModule/SBTarget.FindGlobalVariables(...).Johnny Chen2011-06-292-0/+2
| | | | llvm-svn: 134107
* In the ARM global merging pass, allow extraneous alignment specifiers. This passCameron Zwarich2011-06-292-2/+16
| | | | | | | | already makes the assumption, which is correct on ARM, that a type's alignment is less than its alloc size. This improves codegen with Clang (which inserts a lot of extraneous alignment specifiers) and fixes <rdar://problem/9695089>. llvm-svn: 134106
* Introduce a caching mechanism for macro expanded tokens.Argyrios Kyrtzidis2011-06-296-13/+78
| | | | | | | | | | | | | | | Previously macro expanded tokens were added to Preprocessor's bump allocator and never released, even after the TokenLexer that were lexing them was finished, thus they were wasting memory. A very "useful" boost library was causing clang to eat 1 GB just for the expanded macro tokens. Introduce a special cache that works like a stack; a TokenLexer can add the macro expanded tokens in the cache, and when it finishes, the tokens are removed from the end of the cache. Now consumed memory by expanded tokens for that library is ~ 1.5 MB. Part of rdar://9327049. llvm-svn: 134105
* [libclang] Introduce cxcursor::getCursorParentDecl(CXCursor Cursor) and use ↵Argyrios Kyrtzidis2011-06-293-1/+6
| | | | | | | | it at the appropriate place in CIndex.cpp No functionality change. llvm-svn: 134104
* Introduce Preprocessor::getTotalMemory() and use it in CIndex.cpp, no ↵Argyrios Kyrtzidis2011-06-293-2/+7
| | | | | | functionality change. llvm-svn: 134103
* Added support for finding and global variables in the SBTarget and SBModuleGreg Clayton2011-06-2915-133/+449
| | | | | | | | | | | | | | | level in the public API. Also modified the ValueObject values to be able to display global variables without having a valid running process. The globals will read themselves from the object file section data if there is no process, and from the process if there is one. Also fixed an issue where modifications for dynamic types could cause child values of ValueObjects to not show up if the value was unable to evaluate itself (children of NULL pointer objects). llvm-svn: 134102
* ARM RSCS* don't need explicit TableGen decoder checks.Jim Grosbach2011-06-291-4/+0
| | | | | | | They've been pseudos for a while now, so the decoder will never see them in the first place. llvm-svn: 134101
* IndentationEvan Cheng2011-06-291-1/+1
| | | | llvm-svn: 134100
* Check for deprecated/unavailable/etc attributes on fields that areDouglas Gregor2011-06-292-0/+17
| | | | | | initialized via initializer lists. Fixes <rdar://problem/9694686>. llvm-svn: 134099
* Add fuzz calls for SBTypeMember.Johnny Chen2011-06-292-0/+28
| | | | llvm-svn: 134098
* When redeclaring a local extern in the same scope, make sure that weDouglas Gregor2011-06-292-3/+26
| | | | | | | replace the existing declaration appropriately. Patch by Jordy Rose, fixes PR10013 / <rdar://problem/9584157>. llvm-svn: 134097
* Add fuzz calls to SBType, SBValue, and SBValueList.Johnny Chen2011-06-297-8/+93
| | | | | | | | | Fixed crashes for SBValue fuzz calls. And change 'bool SBType::IsPointerType(void)' to 'bool SBType::IsAPointerType(void)' to avoid name collision with the static 'bool SBType::IsPointerType(void *)' function, which SWIG cannot handle. llvm-svn: 134096
* Remove getRegClassForInlineAsmConstraint from the ARM port.Eric Christopher2011-06-292-59/+15
| | | | | | Part of rdar://9643582 llvm-svn: 134095
* Remove todo.Eric Christopher2011-06-291-2/+0
| | | | llvm-svn: 134094
* make compose and isMoveInstr static functions.Rafael Espindola2011-06-292-16/+10
| | | | llvm-svn: 134093
* Refactor away tSpill and tRestore pseudos in ARM backend.Jim Grosbach2011-06-296-39/+9
| | | | | | | The tSpill and tRestore instructions are just copies of the tSTRspi and tLDRspi instructions, respectively. Just use those directly instead. llvm-svn: 134092
* objc-arc: fix a IRGen crash when checking forFariborz Jahanian2011-06-292-1/+31
| | | | | | | accessibility of an initializer which is a compound statement. // rdar://9694706 llvm-svn: 134091
OpenPOWER on IntegriCloud