summaryrefslogtreecommitdiffstats
path: root/llvm/lib/VMCore
Commit message (Collapse)AuthorAgeFilesLines
...
* llvm.global_[cd]tor is defined to be either external, or appending with an arrayNick Lewycky2011-04-081-0/+17
| | | | | | | of { i32, void ()* }. Teach the verifier to verify that, deleting copies of checks strewn about. llvm-svn: 129128
* Set unnamed_addr on strings created through the IRBuilder.Nick Lewycky2011-04-071-0/+1
| | | | llvm-svn: 129040
* Replace const std::vector& with ArrayRef in the type creation APIs.Nick Lewycky2011-04-062-8/+10
| | | | llvm-svn: 129024
* face+palmDevang Patel2011-04-061-4/+4
| | | | | | Keep track of llvm.dbg.value intrinsics with non null values. llvm-svn: 129010
* Add an empty key for DebugLoc so that you can store an empty DebugLoc in aNick Lewycky2011-04-061-1/+1
| | | | | | DenseMap. llvm-svn: 128994
* Support using DebugLoc's in a DenseMap.Nick Lewycky2011-04-061-0/+24
| | | | llvm-svn: 128988
* Remove some support for ReturnInsts with multiple operands, and forJay Foad2011-04-041-24/+4
| | | | | | | returning a scalar value in a function whose return type is a single- element structure or array. llvm-svn: 128810
* Move Object.cpp out of VMCore and into Object.Eric Christopher2011-04-032-60/+0
| | | | llvm-svn: 128800
* Add a set of C bindings for the Object interface.Eric Christopher2011-04-032-0/+60
| | | | | | Patch by Patrick Walton! llvm-svn: 128798
* Various Instructions' resizeOperands() methods are only used to grow theJay Foad2011-04-011-54/+16
| | | | | | list of operands. Simplify and rename them accordingly. llvm-svn: 128708
* While testing dragonegg I noticed that isCastable and getCastOpcodeDuncan Sands2011-04-011-4/+12
| | | | | | | | had gotten out of sync: isCastable didn't think it was possible to cast the x86_mmx type to anything, while it did think it possible to cast an i64 to x86_mmx. llvm-svn: 128705
* Remove PHINode::reserveOperandSpace(). Instead, add a parameter toJay Foad2011-03-301-1/+1
| | | | | | PHINode::Create() giving the (known or expected) number of operands. llvm-svn: 128537
* Remove dead code.Bill Wendling2011-03-301-68/+0
| | | | llvm-svn: 128519
* Add intrinsics @llvm.arm.neon.vmulls and @llvm.arm.neon.vmullu.* back. FrontendsEvan Cheng2011-03-291-1/+0
| | | | | | | | | | | | | | | was lowering them to sext / uxt + mul instructions. Unfortunately the optimization passes may hoist the extensions out of the loop and separate them. When that happens, the long multiplication instructions can be broken into several scalar instructions, causing significant performance issue. Note the vmla and vmls intrinsics are not added back. Frontend will codegen them as intrinsics vmull* + add / sub. Also note the isel optimizations for catching mul + sext / zext are not changed either. First part of rdar://8832507, rdar://9203134 llvm-svn: 128502
* Spruce up the error output.Bill Wendling2011-03-291-2/+1
| | | | llvm-svn: 128451
* Do not accidently initialize NumDbgValueLost and NumDbgLineLost counts.Devang Patel2011-03-161-4/+4
| | | | llvm-svn: 127720
* Unbreak the CMake build.Francois Pichet2011-03-101-0/+1
| | | | llvm-svn: 127383
* Introduce DebugInfoProbe. This is used to monitor how llvm optimizer is ↵Devang Patel2011-03-102-1/+259
| | | | | | | | | | | | treating debugging information. It generates output that lools like 8 times line number info lost by Scalar Replacement of Aggregates (SSAUp) 1 times line number info lost by Simplify well-known library calls 12 times variable info lost by Jump Threading llvm-svn: 127381
* Make these options hidden to reduce the amount of text -help puts on theEric Christopher2011-03-091-2/+4
| | | | | | command line, they'll still be seen with -help-hidden. llvm-svn: 127353
* ptx: Fix calling convention printing in AsmWriter.cppJustin Holewinski2011-03-071-2/+2
| | | | | | | This allows LLVM IR using ptx_kernel or ptx_device calling conventions to be properly printed when emitted in text form. llvm-svn: 127157
* ConstantInt has some getters which return ConstantInt's or ConstantVector's ofNick Lewycky2011-03-061-6/+31
| | | | | | | | the value splatted into every element. Extend this to getTrue and getFalse which by providing new overloads that take Types that are either i1 or <N x i1>. Use it in InstCombine to add vector support to some code, fixing PR8469! llvm-svn: 127116
* Add ArrayRef variant.Devang Patel2011-03-041-0/+3
| | | | llvm-svn: 126978
* Use X86_thiscall calling convention for Win64 as well.Tilmann Scheller2011-03-031-3/+0
| | | | llvm-svn: 126934
* Add Win64 thiscall calling convention.Tilmann Scheller2011-03-021-0/+3
| | | | llvm-svn: 126862
* Add a special streamer to libLTO that just records symbols definitions andRafael Espindola2011-03-021-3/+6
| | | | | | | | | | | uses. The result produced by the streamer is used to give the linker more accurate information and to add to llvm.compiler.used. The second improvement removes the need for the user to add __attribute__((used)) to functions only used in inline asm. The first one lets us build firefox with LTO on Darwin :-) llvm-svn: 126830
* Added missing va_end().Talin2011-03-011-0/+1
| | | | llvm-svn: 126759
* Add an END_WITH_NULL accessor for ConstantStruct.Talin2011-02-281-2/+13
| | | | llvm-svn: 126714
* These tags are now covered by dwarf::TagString().Devang Patel2011-02-181-9/+1
| | | | llvm-svn: 125987
* Expose getTypeName to the C API. Patch by Patrick Walton.Rafael Espindola2011-02-181-0/+4
| | | | llvm-svn: 125845
* hoist GlobalValue::removeDeadConstantUsers up to being a method on Constant.Chris Lattner2011-02-182-49/+53
| | | | llvm-svn: 125828
* Enhance constant folding of bitcast operations on vectors of floats.Nadav Rotem2011-02-172-3/+8
| | | | | | | Add getAllOnesValue of FP numbers to Constants and APFloat. Add more tests. llvm-svn: 125776
* convert ConstantVector::get to use ArrayRef.Chris Lattner2011-02-154-137/+79
| | | | llvm-svn: 125537
* revert my ConstantVector patch, it seems to have made the llvm-gccChris Lattner2011-02-144-79/+137
| | | | | | builders unhappy. llvm-svn: 125504
* Switch ConstantVector::get to use ArrayRef instead of a pointer+sizeChris Lattner2011-02-144-137/+79
| | | | | | idiom. Change various clients to simplify their code. llvm-svn: 125487
* Fix a regression from r125393;Nadav Rotem2011-02-131-1/+2
| | | | | | | | | | | | | It caused a crash in MultiSource/Benchmarks/Bullet. Opt hit an assertion with "opt -std-compile-opts" because Constant::getAllOnesValue doesn't know how to handle floats. This patch added a test to reproduce the problem and a check that the destination vector is of integer type. Thank you Benjamin! llvm-svn: 125459
* Fix 9173.Nadav Rotem2011-02-111-0/+40
| | | | | | | Add more folding patterns to constant expressions of vector selects and vector bitcasts. llvm-svn: 125393
* make ConstantExpr::replaceUsesOfWithOnConstant preserve the inboundsChris Lattner2011-02-111-1/+2
| | | | | | flag. Noticed by Jin Gu Kang! llvm-svn: 125366
* make the constantexpr interfaces for inbounds GEPs follow the same styleChris Lattner2011-02-111-63/+10
| | | | | | as other constantexpr flags, reducing redundancy. llvm-svn: 125365
* switch the constantexpr, target folder, and IRBuilder interfacesChris Lattner2011-02-101-67/+24
| | | | | | | for NSW/NUW binops to follow the pattern of exact binops. This allows someone to use Builder.CreateAdd(x, y, "tmp", MaybeNUW); llvm-svn: 125270
* refactor ConstantExpr interfaces a bit around "exactness".Chris Lattner2011-02-091-29/+12
| | | | llvm-svn: 125190
* fix comment change.Chris Lattner2011-02-071-1/+1
| | | | llvm-svn: 125047
* implement .ll and .bc support for nsw/nuw on shl and exact on lshr/ashr.Chris Lattner2011-02-071-53/+74
| | | | | | Factor some code better. llvm-svn: 125006
* enhance vmcore to know that udiv's can be exact, and add a trivialChris Lattner2011-02-063-4/+10
| | | | | | | | instcombine xform to exercise this. Nothing forms exact udivs yet though. This is progress on PR8862 llvm-svn: 124992
* Make SwitchInst::removeCase() more efficient.Jay Foad2011-02-011-8/+4
| | | | llvm-svn: 124659
* Have m_One also match constant vectors for which every element is 1.Duncan Sands2011-02-011-1/+1
| | | | llvm-svn: 124655
* Fix 'fcmp one' constant folding. Noticed by inspection.Nick Lewycky2011-01-301-1/+1
| | | | llvm-svn: 124557
* Fix some formatting and upgrade comments from llvm 1.x to 2.x syntax.Nick Lewycky2011-01-301-6/+6
| | | | llvm-svn: 124556
* Add the select optimization recently added to instcombine to constant folding.Nick Lewycky2011-01-291-0/+12
| | | | | | | This is the one where one of the branches of the select is another select on the same condition. llvm-svn: 124547
* Fix indentation.Jay Foad2011-01-271-9/+9
| | | | llvm-svn: 124375
* Simplify User::operator delete().Jay Foad2011-01-261-10/+3
| | | | llvm-svn: 124330
OpenPOWER on IntegriCloud