summaryrefslogtreecommitdiffstats
path: root/llvm/lib/VMCore/AutoUpgrade.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* Enable first-class aggregates support.Dan Gohman2008-07-231-28/+0
| | | | | | | | | | | | Remove the GetResultInst instruction. It is still accepted in LLVM assembly and bitcode, where it is now auto-upgraded to ExtractValueInst. Also, remove support for return instructions with multiple values. These are auto-upgraded to use InsertValueInst instructions. The IRBuilder still accepts multiple-value returns, and auto-upgrades them to InsertValueInst instructions. llvm-svn: 53941
* Fix multiple-return-value-to-first-class-aggregates autoupgrade toDan Gohman2008-07-221-1/+4
| | | | | | | correctly handle the case where multiple-return-value constructs were used to return one or zero values. llvm-svn: 53890
* Added MemOperands to Atomic operations since Atomics touches memory.Mon P Wang2008-06-251-0/+24
| | | | | | | | Added abstract class MemSDNode for any Node that have an associated MemOperand Changed atomic.lcs => atomic.cmp.swap, atomic.las => atomic.load.add, and atomic.lss => atomic.load.sub llvm-svn: 52706
* Auto-upgrade code for multiple-value return statements. This codeDan Gohman2008-06-171-0/+24
| | | | | | isn't actually called yet. llvm-svn: 52435
* Eliminate x86.sse2.punpckh.qdq and x86.sse2.punpckl.qdq.Evan Cheng2008-05-241-4/+12
| | | | llvm-svn: 51533
* Eliminate x86.sse2.movs.d, x86.sse2.shuf.pd, x86.sse2.unpckh.pd, and ↵Evan Cheng2008-05-241-5/+43
| | | | | | x86.sse2.unpckl.pd intrinsics. These will be lowered into shuffles. llvm-svn: 51531
* Autoupgrade x86.sse2.loadh.pd and x86.sse2.loadl.pd.Evan Cheng2008-05-241-19/+50
| | | | llvm-svn: 51523
* API change for {BinaryOperator|CmpInst|CastInst}::create*() --> Create. ↵Gabor Greif2008-05-161-1/+1
| | | | | | Legacy interfaces will be in place for some time. (Merge from use-diet branch.) llvm-svn: 51200
* Add separate intrinsics for MMX / SSE shifts with i32 integer operands. This ↵Evan Cheng2008-05-031-1/+1
| | | | | | allow us to simplify the horribly complicated matching code. llvm-svn: 50601
* API changes for class Use size reduction, wave 1.Gabor Greif2008-04-061-7/+8
| | | | | | | | Specifically, introduction of XXX::Create methods for Users that have a potentially variable number of Uses. llvm-svn: 49277
* Undo 48570. Correctly match mmx shift instructions with an immediate operand.Evan Cheng2008-03-211-2/+1
| | | | llvm-svn: 48627
* Add intrinsics to match mmx shift builtin's with immediate operand.Evan Cheng2008-03-191-1/+2
| | | | llvm-svn: 48569
* Reimplement the parameter attributes support, phase #1. hilights:Chris Lattner2008-03-121-10/+8
| | | | | | | | | | | | | | | | | | | | | | | 1. There is now a "PAListPtr" class, which is a smart pointer around the underlying uniqued parameter attribute list object, and manages its refcount. It is now impossible to mess up the refcount. 2. PAListPtr is now the main interface to the underlying object, and the underlying object is now completely opaque. 3. Implementation details like SmallVector and FoldingSet are now no longer part of the interface. 4. You can create a PAListPtr with an arbitrary sequence of ParamAttrsWithIndex's, no need to make a SmallVector of a specific size (you can just use an array or scalar or vector if you wish). 5. All the client code that had to check for a null pointer before dereferencing the pointer is simplified to just access the PAListPtr directly. 6. The interfaces for adding attrs to a list and removing them is a bit simpler. Phase #2 will rename some stuff (e.g. PAListPtr) and do other less invasive changes. llvm-svn: 48289
* Split ParameterAttributes.h, putting the complicatedDale Johannesen2008-02-221-1/+1
| | | | | | | stuff into ParamAttrsList.h. Per feedback from ParamAttrs changes. llvm-svn: 47504
* Unbreak build with gcc 4.3: provide missed includes and silence most ↵Anton Korobeynikov2008-02-201-0/+1
| | | | | | annoying warnings. llvm-svn: 47367
* Remove attribution from file headers, per discussion on llvmdev.Chris Lattner2007-12-291-2/+2
| | | | llvm-svn: 45418
* Remove int_x86_sse2_movl_dq. It's replaced with a string compare.Evan Cheng2007-12-181-5/+3
| | | | llvm-svn: 45140
* Bring back int_x86_sse2_movl_dq intrinsic for backward compatibility. Make sureEvan Cheng2007-12-171-23/+68
| | | | | | it's auto-upgraded to a shufflevector instruction. llvm-svn: 45131
* All MMX shift instructions took a <2 x i32> vector as the shift amount ↵Anders Carlsson2007-12-141-0/+68
| | | | | | parameter. Change this to be <1 x i64> instead, which matches the assembler instruction. llvm-svn: 45027
* Rather than having special rules like "intrinsics cannotDuncan Sands2007-12-031-1/+12
| | | | | | | | | throw exceptions", just mark intrinsics with the nounwind attribute. Likewise, mark intrinsics as readnone/readonly and get rid of special aliasing logic (which didn't use anything more than this anyway). llvm-svn: 44544
* Fix PR1146: parameter attributes are longer part ofDuncan Sands2007-11-271-7/+4
| | | | | | | | | | | | the function type, instead they belong to functions and function calls. This is an updated and slightly corrected version of Reid Spencer's original patch. The only known problem is that auto-upgrading of bitcode files doesn't seem to work properly (see test/Bitcode/AutoUpgradeIntrinsics.ll). Hopefully a bitcode guru (who might that be? :) ) will fix it. llvm-svn: 44359
* This is the patch to provide clean intrinsic function overloading support in ↵Chandler Carruth2007-08-041-0/+197
| | | | | | | | LLVM. It cleans up the intrinsic definitions and generally smooths the process for more complicated intrinsic writing. It will be used by the upcoming atomic intrinsics as well as vector and float intrinsics in the future. This also changes the syntax for llvm.bswap, llvm.part.set, llvm.part.select, and llvm.ct* intrinsics. They are automatically upgraded by both the LLVM ASM reader and the bitcode reader. The test cases have been updated, with special tests added to ensure the automatic upgrading is supported. llvm-svn: 40807
* Remove dead code.Reid Spencer2006-12-031-287/+0
| | | | llvm-svn: 32157
* Changed to using LLVM streams.Bill Wendling2006-11-281-2/+2
| | | | llvm-svn: 31955
* For PR950:Reid Spencer2006-11-271-4/+4
| | | | | | | | | | The long awaited CAST patch. This introduces 12 new instructions into LLVM to replace the cast instruction. Corresponding changes throughout LLVM are provided. This passes llvm-test, llvm/test, and SPEC CPUINT2000 with the exception of 175.vpr which fails only on a slight floating point output difference. llvm-svn: 31931
* Undo a patch that breaks llvm-as because the warning message is written toReid Spencer2006-05-301-1/+1
| | | | | | | stdout when the output of llvm-as is also written to stdout. We'll have to fix tcl some other way. llvm-svn: 28557
* Write the WARNING message to cout instead of cerr. Writing to cerr causesReid Spencer2006-05-301-1/+1
| | | | | | | Tcl to claim that the program had an error and thus produces errors in the dejagnu testing when its really just a warning. llvm-svn: 28556
* Don't emit useless warning messages.Reid Spencer2006-04-121-2/+3
| | | | llvm-svn: 27617
* Cast instruction not inserted into basic block.Jim Laskey2006-03-251-41/+5
| | | | llvm-svn: 27122
* Add some more bulletproofing to auto upgrade of llvm.dbg intrinsics.Jim Laskey2006-03-231-13/+9
| | | | llvm-svn: 26996
* Change the argument types of llvm.dbg intrinsics.Jim Laskey2006-03-231-23/+64
| | | | llvm-svn: 26985
* Bugfix, unbreaking CodeGen/PowerPC/cttz.llChris Lattner2006-03-141-1/+1
| | | | llvm-svn: 26764
* 1. Handle removal of all arguments for a morphed intrinsic.Jim Laskey2006-03-141-1/+4
| | | | | | 2. Remove the declaration of llvm.dbg.declare. llvm-svn: 26745
* Handle the removal of the debug chain.Jim Laskey2006-03-131-47/+99
| | | | llvm-svn: 26729
* autoupgrade memcpy/memmove/memset with signed counts.Chris Lattner2006-03-091-4/+12
| | | | | | CVS: ---------------------------------------------------------------------- llvm-svn: 26654
* Unbreak autouprade of llvm.sqrt, simplify some code.Chris Lattner2006-03-031-38/+12
| | | | llvm-svn: 26506
* Split memcpy/memset/memmove intrinsics into i32/i64 versions, resolvingChris Lattner2006-03-021-133/+116
| | | | | | | | | | | PR709, and paving the way for future progress. Significantly refactor autoupgrading code, to handle the more complex case (where we upgrade one argument in a function), and fix some bugs in it. Testcase here: llvm/test/Regression/Bytecode/memcpy.ll llvm-svn: 26474
* Fix auto-upgrade of intrinsics to work properly with both assembly andReid Spencer2006-01-271-28/+98
| | | | | | | bytecode reading. This code is crufty, the result of much hacking to get things working correctly. Cleanup patches will follow. llvm-svn: 25682
* For PR411:Reid Spencer2006-01-231-7/+6
| | | | | | | | No functionality changes, just improve the code by a) providing better function names, b) eliminating a call to get_suffix and c) tightening up a function elimination test to reduce further checking. llvm-svn: 25540
* Remove dead expression.Chris Lattner2006-01-201-1/+1
| | | | llvm-svn: 25480
* Don't use invalidated use_iterator's. This fixes a crash compiling povrayChris Lattner2006-01-201-2/+2
| | | | llvm-svn: 25479
* Don't forget about casting the result of an upgraded call to an intrinsicReid Spencer2006-01-191-1/+4
| | | | | | in the case where it needs to cast back to a signed type. llvm-svn: 25447
* Make get_suffix faster by using a switch on getTypeID rather than a seriesReid Spencer2006-01-191-12/+9
| | | | | | of comparisons on the various type objects. llvm-svn: 25441
* Add a new interface function to AutoUpgrade for simultaneously upgradingReid Spencer2006-01-191-59/+150
| | | | | | | | the Function and the CallInst: UpgradeCallsToIntrinsic(Function*). Also, re-factor the AutoUpgrade implementation to eliminate some duplication of code. llvm-svn: 25432
* For PR411:Reid Spencer2006-01-161-0/+105
This file makes the helper functions for auto-upgrade of llvm assembly and bytecode more accessible. This is part of de-overloading of intrinsic functions to support the flat symbol table (no type planes). llvm-svn: 25365
OpenPOWER on IntegriCloud