summaryrefslogtreecommitdiffstats
path: root/llvm/test/Assembler
Commit message (Collapse)AuthorAgeFilesLines
...
* FileCheckize these testcases.Bill Wendling2012-04-0814-47/+116
| | | | llvm-svn: 154281
* Replace all instances of dg.exp file with lit.local.cfg, since all tests are ↵Eli Bendersky2012-02-162-3/+1
| | | | | | | | run with LIT now and now Dejagnu. dg.exp is no longer needed. Patch reviewed by Daniel Dunbar. It will be followed by additional cleanup patches. llvm-svn: 150664
* Add an explicit test of the auto-upgrade functionality for the newChandler Carruth2011-12-121-0/+44
| | | | | | | | | | | | | intrinsic syntax. Now that this is explicitly covered, I plan to upgrade the existing test suite to use an explicit immediate. Note that I plan to specify 'true' in most places rather than the auto-upgraded value as that is the far more common value to end up here as that is the value coming from GCC's builtins. The only place I'm likely to put a 'false' in is when testing x86 which actually has different instructions for the two variants. llvm-svn: 146369
* remove autoupgrade support for old forms of llvm.prefetch and the oldChris Lattner2011-11-271-24/+0
| | | | | | | trampoline forms. Both of these were correct in LLVM 3.0, and we don't need to support LLVM 2.9 and earlier in mainline. llvm-svn: 145174
* remove some old autoupgrade logicChris Lattner2011-11-271-31/+0
| | | | llvm-svn: 145167
* Fix a typo in the bitcode reader in the handling of atomic stores. Reported ↵Eli Friedman2011-09-191-1/+1
| | | | | | by David Meyer on llvmdev. llvm-svn: 140040
* Split the init.trampoline intrinsic, which currently combines GCC'sDuncan Sands2011-09-061-0/+13
| | | | | | | | | | | | | | | | | | | | init.trampoline and adjust.trampoline intrinsics, into two intrinsics like in GCC. While having one combined intrinsic is tempting, it is not natural because typically the trampoline initialization needs to be done in one function, and the result of adjust trampoline is needed in a different (nested) function. To get around this llvm-gcc hacks the nested function lowering code to insert an additional parent variable holding the adjust.trampoline result that can be accessed from the child function. Dragonegg doesn't have the luxury of tweaking GCC code, so it stored the result of adjust.trampoline in the memory GCC set aside for the trampoline itself (this is always available in the child function), and set up some new memory (using an alloca) to hold the trampoline. Unfortunately this breaks Go which allocates trampoline memory on the heap and wants to use it even after the parent has exited (!). Rather than doing even more hacks to get Go working, it seemed best to just use two intrinsics like in GCC. Patch mostly by Sanjoy Das. llvm-svn: 139140
* Update to the new EH scheme.Bill Wendling2011-08-251-3/+7
| | | | llvm-svn: 138606
* Move "atomic" and "volatile" designations on instructions after the opcodeEli Friedman2011-08-121-0/+26
| | | | | | | | | | of the instruction. Note that this change affects the existing non-atomic load and store instructions; the parser now accepts both forms, and the change is noted in the release notes. llvm-svn: 137527
* Land the long talked about "type system rewrite" patch. ThisChris Lattner2011-07-096-11/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | patch brings numerous advantages to LLVM. One way to look at it is through diffstat: 109 files changed, 3005 insertions(+), 5906 deletions(-) Removing almost 3K lines of code is a good thing. Other advantages include: 1. Value::getType() is a simple load that can be CSE'd, not a mutating union-find operation. 2. Types a uniqued and never move once created, defining away PATypeHolder. 3. Structs can be "named" now, and their name is part of the identity that uniques them. This means that the compiler doesn't merge them structurally which makes the IR much less confusing. 4. Now that there is no way to get a cycle in a type graph without a named struct type, "upreferences" go away. 5. Type refinement is completely gone, which should make LTO much MUCH faster in some common cases with C++ code. 6. Types are now generally immutable, so we can use "Type *" instead "const Type *" everywhere. Downsides of this patch are that it removes some functions from the C API, so people using those will have to upgrade to (not yet added) new API. "LLVM 3.0" is the right time to do this. There are still some cleanups pending after this, this patch is large enough as-is. llvm-svn: 134829
* more tests not making the jump into the brave new world.Chris Lattner2011-07-091-3/+0
| | | | llvm-svn: 134820
* remove some crufy old tests that aren't adding much valueChris Lattner2011-07-0910-194/+0
| | | | llvm-svn: 134819
* Remove support for parsing the "type i32" syntax for defining a numberedChris Lattner2011-06-193-13/+1
| | | | | | | top level type without a specified number. This syntax isn't documented and blocks forward progress. llvm-svn: 133371
* rip out a ton of intrinsic modernization logic from AutoUpgrade.cpp, which isChris Lattner2011-06-182-304/+4
| | | | | | | | | for pre-2.9 bitcode files. We keep x86 unaligned loads, movnt, crc32, and the target indep prefetch change. As usual, updating the testsuite is a PITA. llvm-svn: 133337
* make the asmparser reject function and type redefinitions. 'Merging' hasn't ↵Chris Lattner2011-06-173-25/+0
| | | | | | | | been needed since llvm-gcc 3.4 days. llvm-svn: 133248
* remove parser support for the obsolete "multiple return values" syntax, whichChris Lattner2011-06-171-22/+0
| | | | | | was replaced with return of a "first class aggregate". llvm-svn: 133245
* manually upgrade a bunch of tests to modern syntax, and remove some thatChris Lattner2011-06-174-37/+0
| | | | | | are either unreduced or only test old syntax. llvm-svn: 133228
* Add testcase for r133050 which added support for printing and parsing escapedNick Lewycky2011-06-161-0/+24
| | | | | | names for named metadata nodes. llvm-svn: 133166
* Add one more argument to the prefetch intrinsic to indicate whether it's a dataBruno Cardoso Lopes2011-06-141-0/+8
| | | | | | | or instruction cache access. Update the targets to match it and also teach autoupgrade. llvm-svn: 132976
* Tighten up checking of the validity of casts. (1) The IR parser wouldDuncan Sands2011-05-182-0/+12
| | | | | | | | | | | | | | happily accept things like "sext <2 x i32> to <999 x i64>". It would also accept "sext <2 x i32> to i64", though the verifier would catch that later. Fixed by having castIsValid check that vector lengths match except when doing a bitcast. (2) When creating a cast instruction, check that the cast is valid (this was already done when creating constexpr casts). While there, replace getScalarSizeInBits (used to allow more vector casts) with getPrimitiveSizeInBits in getCastOpcode and isCastable since vector to vector casts are now handled explicitly by passing to the element types; i.e. this bit should result in no functional change. llvm-svn: 131532
* Replace the "movnt" intrinsics with a native store + nontemporal metadata bit.Bill Wendling2011-05-031-0/+18
| | | | | | <rdar://problem/8460511> llvm-svn: 130791
* Reapply r129401 with patch for clang.Bill Wendling2011-04-131-0/+12
| | | | llvm-svn: 129419
* Revert r129401 for now. Clang is using the old way of doing things.Bill Wendling2011-04-121-12/+0
| | | | llvm-svn: 129403
* Remove the unaligned load intrinsics in favor of using native unaligned loads.Bill Wendling2011-04-121-0/+12
| | | | | | | | | Now that we have a first-class way to represent unaligned loads, the unaligned load intrinsics are superfluous. First part of <rdar://problem/8460511>. llvm-svn: 129401
* Remove some support for ReturnInsts with multiple operands, and forJay Foad2011-04-041-6/+0
| | | | | | | returning a scalar value in a function whose return type is a single- element structure or array. llvm-svn: 128810
* Reapply: Add type output to llvm-dis annotations. Patch by Yuri!Stuart Hastings2011-03-171-3/+2
| | | | llvm-svn: 127824
* implement .ll and .bc support for nsw/nuw on shl and exact on lshr/ashr.Chris Lattner2011-02-072-1/+46
| | | | | | Factor some code better. llvm-svn: 125006
* enhance vmcore to know that udiv's can be exact, and add a trivialChris Lattner2011-02-061-0/+19
| | | | | | | | instcombine xform to exercise this. Nothing forms exact udivs yet though. This is progress on PR8862 llvm-svn: 124992
* Move unnamed_addr after the function arguments on Sabre's request.Rafael Espindola2011-01-251-2/+2
| | | | llvm-svn: 124209
* Allow unnamed_addr on declarations.Rafael Espindola2011-01-152-16/+0
| | | | llvm-svn: 123529
* Reject uses of unnamed_addr in declarations.Rafael Espindola2011-01-132-0/+16
| | | | llvm-svn: 123358
* First step in fixing PR8927:Rafael Espindola2011-01-081-0/+18
| | | | | | | | | | | | | | | | | | | Add a unnamed_addr bit to global variables and functions. This will be used to indicate that the address is not significant and therefore the constant or function can be merged with others. If an optimization pass can show that an address is not used, it can set this. Examples of things that can have this set by the FE are globals created to hold string literals and C++ constructors. Adding unnamed_addr to a non-const global should have no effect unless an optimization can transform that global into a constant. Aliases are not allowed to have unnamed_addr since I couldn't figure out any use for it. llvm-svn: 123063
* Fix PR 4170 by having ExtractValueInst::getIndexedType() reject ↵Frits van Bommel2010-12-052-0/+15
| | | | | | | | out-of-bounds indexing. Also add asserts that the indices are valid in InsertValueInst::init(). ExtractValueInst already asserts when constructed with invalid indices. llvm-svn: 120956
* The pshufw instruction came about in MMX2 when SSE was introduced. Don't placeBill Wendling2010-10-041-0/+3
| | | | | | | | | it in with the SSSE3 instructions. Steward! Could you place this chair by the aft sun deck? I'm trying to get away from the Astors. They are such boors! llvm-svn: 115552
* Auto-upgrade tests for the new MMX intrinsic calls.Bill Wendling2010-10-031-0/+220
| | | | llvm-svn: 115456
* Massive rewrite of MMX: Dale Johannesen2010-09-301-1/+1
| | | | | | | | | | | | | | | | | | | The x86_mmx type is used for MMX intrinsics, parameters and return values where these use MMX registers, and is also supported in load, store, and bitcast. Only the above operations generate MMX instructions, and optimizations do not operate on or produce MMX intrinsics. MMX-sized vectors <2 x i32> etc. are lowered to XMM or split into smaller pieces. Optimizations may occur on these forms and the result casted back to x86_mmx, provided the result feeds into a previous existing x86_mmx operation. The point of all this is prevent optimizations from introducing MMX operations, which is unsafe due to the EMMS problem. llvm-svn: 115243
* Basic smoke test for new x86mmx type.Dale Johannesen2010-09-131-0/+8
| | | | llvm-svn: 113783
* add a new "llvm-dis -show-annotations" option, which causes it to printChris Lattner2010-09-021-0/+20
| | | | | | #uses comments, with a testcase. llvm-svn: 112906
* remove some noise from tests.Chris Lattner2010-09-021-2/+2
| | | | llvm-svn: 112889
* remove unions from LLVM IR. They are severely buggy and notChris Lattner2010-08-281-3/+0
| | | | | | being actively maintained, improved, or extended. llvm-svn: 112356
* Make GlobalValue alignment consistent with load, store, and allocaDan Gohman2010-07-281-0/+2
| | | | | | alignment, fixing silent truncation of alignment values. llvm-svn: 109653
* Define a maximum supported alignment value for load, store, andDan Gohman2010-07-284-0/+26
| | | | | | | | | alloca instructions (constrained by their internal encoding), and add error checking for it. Fix an instcombine bug which generated huge alignment values (null is infinitely aligned). This fixes undefined behavior noticed by John Regehr. llvm-svn: 109643
* add newlines at the end of files.Chris Lattner2010-04-071-1/+1
| | | | llvm-svn: 100705
* Add support for a union type in LLVM IR. Patch by Talin!Chris Lattner2010-02-121-0/+3
| | | | llvm-svn: 96011
* Function-local metadata whose operands had been optimized to no longer refer ↵Victor Hernandez2010-02-061-0/+25
| | | | | | to function-local IR were not getting written by BitcodeWriter; solution is for these metadata to be enumerated just like global metadata. llvm-svn: 95467
* Fix (and test) function-local metadata that occurs before the instruction ↵Victor Hernandez2010-02-041-0/+2
| | | | | | that it refers to; fix is to not enumerate operands of function-local metadata until after all instructions have been enumerated llvm-svn: 95269
* Improve llvm.dbg.declare intrinsic by referring directly to the storage in ↵Victor Hernandez2010-01-151-12/+17
| | | | | | | | | its first argument, via function-local metadata (instead of via a bitcast). This patch also cleans up code that expects there to be a bitcast in the first argument and testcases that call llvm.dbg.declare. It also strips old llvm.dbg.declare intrinsics that did not pass metadata as the first argument. llvm-svn: 93531
* Revert r93504 because older uses of llvm.dbg.declare intrinsics need to be ↵Victor Hernandez2010-01-151-9/+11
| | | | | | auto-upgraded llvm-svn: 93515
* Improve llvm.dbg.declare intrinsic by referring directly to the storage in ↵Victor Hernandez2010-01-151-11/+9
| | | | | | | | its first argument, via function-local metadata (instead of via a bitcast). This patch also cleans up code that expects there to be a bitcast in the first argument and testcases that call llvm.dbg.declare. llvm-svn: 93504
* Extend testcase to also test llvm.dbg.value intrinsicVictor Hernandez2010-01-141-0/+7
| | | | llvm-svn: 93408
OpenPOWER on IntegriCloud