summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* dgregor accidentally killed this assert, but on investigation, it can fireJohn McCall2011-02-082-18/+16
| | | | | | on invalid code and we don't really care, so kill it harder. llvm-svn: 125068
* Patch that allows for thread_t to be something more complex than anGreg Clayton2011-02-088-16/+32
| | | | | | integer. Modified patch from Kirk Beitz. llvm-svn: 125067
* Don't split any loop backedges, including backedges of loops other thanDan Gohman2011-02-081-15/+17
| | | | | | | | the active loop. This is generally desirable, and it avoids trouble in situations such as the testcase in PR9123, though the failure mode depends on use-list order, so it is infeasible to test. llvm-svn: 125065
* Cleaned up the dynamic library open/getsymbol/close code to use abstractedGreg Clayton2011-02-0812-46/+134
| | | | | | | | | | | | | flags such that symbols can be searched for within a shared library if desired. Platforms that support the RTLD_FIRST flag can still take advantage of their quicker lookups, and other platforms can still get the same fucntionality with a little extra work. Also changed LLDB_CONFIG flags over to either being defined, or not being defined to stay in line with current open source practices and to prepare for using autoconf or cmake to configure LLDB builds. llvm-svn: 125064
* Support for objc use of property-dot syntax as receiverFariborz Jahanian2011-02-082-0/+25
| | | | | | | in liu of a class method getter. objc++ uses a different code path and is more involved (TBD). llvm-svn: 125061
* Add implementation for EmulateInstructionARM::EmulateB() and fixed two typos ↵Johnny Chen2011-02-082-52/+163
| | | | | | | | | | | | in g_thumb_opcodes as pointed out By Caroline. Refactored a little bit by adding two new helper methods to the EmulateInstructionARM class: o BranchWritePC() o BXWritePC() llvm-svn: 125059
* Add LiveIntervals::shrinkToUses().Jakob Stoklund Olesen2011-02-084-23/+141
| | | | | | | | After uses of a live range are removed, recompute the live range to only cover the remaining uses. This is necessary after rematerializing the value before some (but not all) uses. llvm-svn: 125058
* Abtract terminal stuff into a new lldb_private::Terminal classGreg Clayton2011-02-076-130/+256
| | | | | | | | where the implementation is hidden in the host layer. This avoids a slew of "#if LLDB_CONFIG_TERMIOS_SUPPORTED" statements in the code and keeps things cleaner. llvm-svn: 125057
* SimplifyCFG: Track the number of used icmps when turning a icmp chain into a ↵Benjamin Kramer2011-02-074-17/+52
| | | | | | | | switch. If we used only one icmp, don't turn it into a switch. Also prevent the switch-to-icmp transform from creating identity adds, noticed by Marius Wachtler. llvm-svn: 125056
* Add support for parsing dmb/dsb instructionsBruno Cardoso Lopes2011-02-075-9/+148
| | | | llvm-svn: 125055
* Remove comment about an argument that was removed couple of years ago.Devang Patel2011-02-071-1/+0
| | | | llvm-svn: 125054
* Remove the MCR asm parser hack and start using the custom target specific asmBruno Cardoso Lopes2011-02-072-31/+106
| | | | | | | | | | | | | | | | | | parsing of operands introduced in r125030. As a small note, besides using a more generic approach we can also have more descriptive output when debugging llvm-mc, example: mcr p7, #1, r5, c1, c1, #4 note: parsed instruction: ['mcr', <ARMCC::al>, <coprocessor number: 7>, 1, <register 73>, <coprocessor register: 1>, <coprocessor register: 1>, 4] llvm-svn: 125052
* Add EmulateInstructionARM::EmulateB entries to the g_arm_opcodes and ↵Johnny Chen2011-02-072-2/+40
| | | | | | | | g_thumb_opcodes tables. EmulateB() has empty impl. and needs to be filled in later. llvm-svn: 125048
* fix comment change.Chris Lattner2011-02-071-1/+1
| | | | llvm-svn: 125047
* Include Config.h so we can get "~" resolved.Jim Ingham2011-02-072-2/+3
| | | | llvm-svn: 125031
* Implement support for custom target specific asm parsing of operands.Bruno Cardoso Lopes2011-02-072-3/+268
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Motivation: Improve the parsing of not usual (different from registers or immediates) operand forms. This commit implements only the generic support. The ARM specific modifications will come next. A table like the one below is autogenerated for every instruction containing a 'ParserMethod' in its AsmOperandClass static const OperandMatchEntry OperandMatchTable[20] = { /* Mnemonic, Operand List Mask, Operand Class, Features */ { "cdp", 29 /* 0, 2, 3, 4 */, MCK_Coproc, Feature_IsThumb|Feature_HasV6 }, { "cdp", 58 /* 1, 3, 4, 5 */, MCK_Coproc, Feature_IsARM }, A matcher function very similar (but lot more naive) to MatchInstructionImpl scans the table. After the mnemonic match, the features are checked and if the "to be parsed" operand index is present in the mask, there's a real match. Then, a switch like the one below dispatch the parsing to the custom method provided in 'ParseMethod': case MCK_Coproc: return TryParseCoprocessorOperandName(Operands); llvm-svn: 125030
* [AVX] Insert/extract subvector lowering support. This includes aDavid Greene2011-02-071-2/+101
| | | | | | | couple of utility functions that will be used in other places for more AVX lowering. llvm-svn: 125029
* More termios fixes. We need to currently make sure to include:Greg Clayton2011-02-075-6/+13
| | | | | | | | | | | | | | | | | #include "lldb/Host/Config.h" Or the LLDB_CONFIG_TERMIOS_SUPPORTED defined won't be set. I will fix all of this Termios stuff later today by moving lldb/Core/TTYState.* into the host layer and then we conditionalize all of this inside TTYState.cpp and then we get rid of LLDB_CONFIG_TERMIOS_SUPPORTED all together. Typically, when we start to see too many "#if LLDB_CONFIG_XXXX" preprocessor directives, this is a good indicator that something needs to be moved over to the host layer. TTYState can be modified to do all of the things that many areas of the code are currently doing, and it will avoid all of the preprocessor noise. llvm-svn: 125027
* ARM/MC/ELF Lowercase .cpu attributes in .s, but make them uppercase in .oJason W Kim2011-02-071-3/+3
| | | | llvm-svn: 125025
* More termios fixes from Kirk Beitz.Greg Clayton2011-02-074-5/+28
| | | | llvm-svn: 125024
* Fix an obvious typo which caused an isel assertion. rdar://8964854.Evan Cheng2011-02-072-1/+18
| | | | llvm-svn: 125023
* When copy-capturing values for a nested capture, use a BlockDeclRefExpr.John McCall2011-02-072-3/+21
| | | | llvm-svn: 125021
* Reduce test case, smaller is better.Devang Patel2011-02-071-789/+33
| | | | llvm-svn: 125019
* Namespace patch for linux builds from Jai Menon.Greg Clayton2011-02-071-1/+2
| | | | llvm-svn: 125016
* Added a "ArchSpec::SetElfArch()" that was removed by a previous patch andGreg Clayton2011-02-072-1/+15
| | | | | | | avoid using RTLD_FIRST with dlopen to keep things compatible with other *NIX variants. Patch from Jai Menon. llvm-svn: 125015
* Add codegen support for using post-increment NEON load/store instructions.Bob Wilson2011-02-0714-145/+927
| | | | | | | | The vld1-lane, vld1-dup and vst1-lane instructions do not yet support using post-increment versions, but all the rest of the NEON load/store instructions should be handled now. llvm-svn: 125014
* Change VLD3/4 and VST3/4 for quad registers to not update the address register.Bob Wilson2011-02-073-65/+89
| | | | | | | | | | | | These operations are expanded to pairs of loads or stores, and the first one uses the address register update to produce the address for the second one. So far, the second load/store has also updated the address register, just for convenience, since that output has never been used. In anticipation of actually supporting post-increment updates for these operations, this changes the non-updating operations to use a non-updating load/store for the second instruction. llvm-svn: 125013
* Fix some NEON instruction itineraries.Bob Wilson2011-02-071-12/+16
| | | | llvm-svn: 125012
* Fix a comment: addrmode6 no longer includes the optional writeback flag.Bob Wilson2011-02-071-1/+1
| | | | llvm-svn: 125011
* Remove inaccurate comments: so_imm and t2_so_imm operands are not encodedBob Wilson2011-02-072-8/+2
| | | | | | until the instructions are emitted or printed. llvm-svn: 125010
* Move code for OffsetCompare struct closer to where it is used.Bob Wilson2011-02-071-11/+11
| | | | llvm-svn: 125009
* Posix compatability patch from Jai Menon to avoid uses dirent struct membersGreg Clayton2011-02-071-2/+5
| | | | | | | that aren't always available (sometimes d_namlen or d_reclen). Now strlen is used to avoid such issues. llvm-svn: 125008
* Move uninitialized variable checking back under ↵Ted Kremenek2011-02-074-5/+5
| | | | | | -Wuninitialized-experimental. It is clear from user feedback that this warning is not quite ready. llvm-svn: 125007
* implement .ll and .bc support for nsw/nuw on shl and exact on lshr/ashr.Chris Lattner2011-02-078-211/+239
| | | | | | Factor some code better. llvm-svn: 125006
* A few more tweaks to the blocks AST representation: John McCall2011-02-0734-1187/+1467
| | | | | | | | | | | | | | | | | - BlockDeclRefExprs always store VarDecls - BDREs no longer store copy expressions - BlockDecls now store a list of captured variables, information about how they're captured, and a copy expression if necessary With that in hand, change IR generation to use the captures data in blocks instead of walking the block independently. Additionally, optimize block layout by emitting fields in descending alignment order, with a heuristic for filling in words when alignment of the end of the block header is insufficient for the most aligned field. llvm-svn: 125005
* Add an m_Div pattern for matching either a udiv or an sdiv and use itDuncan Sands2011-02-072-4/+36
| | | | | | to simplify the "(X/Y)*Y->X when the division is exact" transform. llvm-svn: 125004
* Add IRBuilder methods for creating an exact udiv, like for exact sdiv.Duncan Sands2011-02-076-1/+37
| | | | llvm-svn: 125002
* Install only *.cmake files. Don't install .svn directory.Oscar Fuentes2011-02-071-1/+2
| | | | | | Fixes PR9159. llvm-svn: 125001
* pre/post ++/-- for AltiVec vectors. (with builtins-ppc-altivec.c failure fixed)Anton Yartsev2011-02-074-24/+82
| | | | llvm-svn: 125000
* Teach ARM/MC/ELF about gcc compatible reloc output to get past odd linkageJason W Kim2011-02-074-3/+265
| | | | | | | | | | | | | | | | | | failures with relocations. The code committed is a first cut at compatibility for emitted relocations in ELF .o. Why do this? because existing ARM tools like emitting relocs symbols as explicit relocations, not as section-offset relocs. Result is that with these changes, 1) relocs are now substantially identical what to gcc outputs. 2) larger apps (including many spec2k tests) compile, cross-link, and pass Added reminder fixme to tests for future conversion to .s form. llvm-svn: 124996
* Rework some .ARM.attribute work for improved gcc compatibility.Jason W Kim2011-02-074-30/+119
| | | | | | | Unified EmitTextAttribute for both Asm and Obj emission (.cpu only) Added necessary cortex-A8 related attrs for codegen compat tests. llvm-svn: 124995
* teach instsimplify to transform (X / Y) * Y to XChris Lattner2011-02-062-3/+25
| | | | | | when the div is an exact udiv. llvm-svn: 124994
* rename test.Chris Lattner2011-02-061-0/+0
| | | | llvm-svn: 124993
* enhance vmcore to know that udiv's can be exact, and add a trivialChris Lattner2011-02-0614-32/+110
| | | | | | | | instcombine xform to exercise this. Nothing forms exact udivs yet though. This is progress on PR8862 llvm-svn: 124992
* Remove premature optimization that avoided calculating argument weightsEric Christopher2011-02-061-5/+0
| | | | | | | | | if we weren't going to inline the function. The rest of the code using this was removed. Fixes PR9154. llvm-svn: 124991
* Simplify test, as suggested by Chris.Anders Carlsson2011-02-061-6/+2
| | | | llvm-svn: 124990
* Remove a virtual inheritance case that clang can devirtualize fully now.Anders Carlsson2011-02-061-21/+0
| | | | llvm-svn: 124989
* Add another test that we can fully devirtualize now.Anders Carlsson2011-02-061-0/+25
| | | | llvm-svn: 124988
* When loading from a constant, fold inttoptr if the integer type and the ↵Anders Carlsson2011-02-062-0/+28
| | | | | | resulting pointer type both have the same size. llvm-svn: 124987
* Fix self-host; if a thunk already exists and has available_externally ↵Anders Carlsson2011-02-062-2/+25
| | | | | | linkage, we should change its linkage instead of asserting. llvm-svn: 124986
OpenPOWER on IntegriCloud