summaryrefslogtreecommitdiffstats
path: root/llvm/lib/VMCore
Commit message (Collapse)AuthorAgeFilesLines
...
* Remove the API compatibility layer which converted add, sub, and mulDan Gohman2010-05-032-27/+4
| | | | | | | | to fadd, fsub, and fmul, when used with a floating-point type. LLVM has supported the new instructions since 2.6, so it's time to get on board. llvm-svn: 102971
* Fix function prototype mismatch in LLVMUnionType(). Fixes PR7019.Nick Lewycky2010-05-031-2/+1
| | | | llvm-svn: 102959
* Verify metadata harder. In particular, check that moduleDuncan Sands2010-04-291-39/+60
| | | | | | | level metadata does not have any function local operands. This would have caught the problem found in PR6112. llvm-svn: 102620
* fix PR6112 - When globalopt (or any other pass) does RAUW(@G, %G), Chris Lattner2010-04-281-2/+15
| | | | | | | metadata references in non-function-local MDNodes should drop to null. llvm-svn: 102519
* Remove the palignr intrinsics now that we lower them to vector shuffles,Eric Christopher2010-04-201-1/+119
| | | | | | | | shifts and null vectors. Autoupgrade these to what we'd lower them to. Add a testcase to exercise this. llvm-svn: 101851
* Fix -Wcast-qual warnings.Dan Gohman2010-04-191-2/+4
| | | | llvm-svn: 101779
* Revert 101465, it broke internal OpenGL testing.Eric Christopher2010-04-165-52/+51
| | | | | | | Probably the best way to know that all getOperand() calls have been handled is to replace that API instead of updating. llvm-svn: 101579
* reapply r101434Gabor Greif2010-04-165-51/+52
| | | | | | | | | | | | | with a fix for self-hosting rotate CallInst operands, i.e. move callee to the back of the operand array the motivation for this patch are laid out in my mail to llvm-commits: more efficient access to operands and callee, faster callgraph-construction, smaller compiler binary llvm-svn: 101465
* Silence an unused variable warning.Eric Christopher2010-04-161-1/+1
| | | | llvm-svn: 101438
* back out r101423 and r101397, they break llvm-gcc self-host on darwin10Gabor Greif2010-04-165-52/+51
| | | | llvm-svn: 101434
* reapply r101364, which has been backed out in r101368Gabor Greif2010-04-155-51/+52
| | | | | | | | | | | | | with a fix rotate CallInst operands, i.e. move callee to the back of the operand array the motivation for this patch are laid out in my mail to llvm-commits: more efficient access to operands and callee, faster callgraph-construction, smaller compiler binary llvm-svn: 101397
* Fix a bunch of namespace polution.Dan Gohman2010-04-153-3/+7
| | | | llvm-svn: 101376
* Fix namespace polution.Dan Gohman2010-04-151-0/+4
| | | | llvm-svn: 101375
* back out r101364, as it trips the linux nightlybot on some clang C++ testsGabor Greif2010-04-155-52/+51
| | | | llvm-svn: 101368
* rotate CallInst operands, i.e. move callee to the backGabor Greif2010-04-155-51/+52
| | | | | | | | | | of the operand array the motivation for this patch are laid out in my mail to llvm-commits: more efficient access to operands and callee, faster callgraph-construction, smaller compiler binary llvm-svn: 101364
* Move a bunch of methods from CallSite to CallSiteBase, so that they canDan Gohman2010-04-141-77/+0
| | | | | | be used in ImmutableCallSite too. llvm-svn: 101292
* Enable RTTI again. While this works fine for LLVM, it creates an ABINick Lewycky2010-04-141-0/+1
| | | | | | incompatibility with some clients covered by the buildbots, such as llvm-gcc. llvm-svn: 101237
* Turn off RTTI for VMCore. Yay!Nick Lewycky2010-04-141-1/+0
| | | | llvm-svn: 101233
* Fix 80 column ruler.Nick Lewycky2010-04-141-1/+1
| | | | llvm-svn: 101229
* VMCore: Add Type::getIntN[Ptr]Ty, which are the obvious generic forms ofDaniel Dunbar2010-04-131-0/+8
| | | | | | | Type::getInt{1,8,...}[Ptr]Ty, so code can consistently use the methods on Type without occasionally needed to call IntegerType::get. llvm-svn: 101111
* Simplify this code.Dan Gohman2010-04-121-14/+14
| | | | llvm-svn: 101074
* add attributes and module level asm to the ocaml bindings,Chris Lattner2010-04-101-0/+5
| | | | | | patch by Patrick Walton! llvm-svn: 100932
* Fix a typo and some indentation.Dan Gohman2010-04-091-2/+2
| | | | llvm-svn: 100908
* Print empty structs as {} rather than { }.Dan Gohman2010-04-081-6/+10
| | | | llvm-svn: 100787
* Fix a comment.Dan Gohman2010-04-081-1/+3
| | | | llvm-svn: 100774
* Use twines to simplify calls to report_fatal_error. For code size and ↵Benjamin Kramer2010-04-081-1/+1
| | | | | | readability. llvm-svn: 100756
* introduce a new recoverable error handling API to LLVMContextChris Lattner2010-04-071-0/+38
| | | | | | | | | | | | | | | | | | | | | | | | and use it in one place in inline asm handling stuff. Before we'd generate this for an invalid modifier letter: $ clang asm.c -c -o t.o fatal error: error in backend: Invalid operand found in inline asm: 'abc incl ${0:Z}' INLINEASM <es:abc incl ${0:Z}>, 10, %EAX<def>, 2147483657, %EAX, 14, %EFLAGS<earlyclobber,def,dead>, <!-1> Now we generate this: $ clang asm.c -c -o t.o error: invalid operand in inline asm: 'incl ${0:Z}' asm.c:3:12: note: generated from here __asm__ ("incl %Z0" : "+r" (X)); ^ 1 error generated. This is much better but still admittedly not great ("why" is the operand invalid??), codegen should try harder with its diagnostics :) llvm-svn: 100723
* Say bitcast instead of bitconvert.Dan Gohman2010-04-071-1/+1
| | | | llvm-svn: 100720
* rename llvm::llvm_report_error -> llvm::report_fatal_errorChris Lattner2010-04-072-2/+2
| | | | llvm-svn: 100709
* minor tidying upChris Lattner2010-04-071-2/+1
| | | | llvm-svn: 100702
* Use a ManagedCleanup to prevent leaking the PassRegistrar map. In breaks theOwen Anderson2010-04-061-6/+14
| | | | | | | use case where someone wants to resurrect LLVM after calling llvm_shutdown, but I'm not aware of any clients that are affected by this. llvm-svn: 100519
* give LLVMContext an inline asm diagnostic hook member.Chris Lattner2010-04-063-2/+22
| | | | llvm-svn: 100506
* Reapply address space patch after fixing an issue in MemCopyOptimizer.Mon P Wang2010-04-041-0/+70
| | | | | | | Added support for address spaces and added a isVolatile field to memcpy, memmove, and memset, e.g., llvm.memcpy.i32(i8*, i8*, i32, i32) -> llvm.memcpy.p0i8.p0i8.i32(i8*, i8*, i32, i32, i1) llvm-svn: 100304
* Ok, third time's the charm. No changes from last time except the CMakeDavid Greene2010-04-023-5/+108
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | source addition. Apparently the buildbots were wrong about failures. --- Add some switches helpful for debugging: -print-before=<Pass Name> Dump IR before running pass <Pass Name>. -print-before-all Dump IR before running each pass. -print-after-all Dump IR after running each pass. These are helpful when tracking down a miscompilation. It is easy to get IR dumps and do diffs on them, etc. To make this work well, add a new getPrinterPass API to Pass so that each kind of pass (ModulePass, FunctionPass, etc.) can create a Pass suitable for dumping out the kind of object the Pass works on. llvm-svn: 100249
* Skip debug info when looking for existing EH calls at theDale Johannesen2010-04-021-0/+11
| | | | | | beginning of a block. llvm-svn: 100230
* rename NewDebugLoc -> DebugLoc, prune #includes in DebugLoc.h.Chris Lattner2010-04-023-16/+16
| | | | | | | This keeps around temporary typedef for clang/llvm-gcc so the build won't break when I commit this :) llvm-svn: 100218
* Revert 100204. It broke a bunch of tests and apparently changed what passes ↵Evan Cheng2010-04-023-108/+5
| | | | | | are run during codegen. llvm-svn: 100207
* Let's try this again. Re-apply 100143 including an apparent missingDavid Greene2010-04-023-5/+108
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | <string> include. For some reason the buildbot choked on this while my builds did not. It's probably due to a difference in system headers. --- Add some switches helpful for debugging: -print-before=<Pass Name> Dump IR before running pass <Pass Name>. -print-before-all Dump IR before running each pass. -print-after-all Dump IR after running each pass. These are helpful when tracking down a miscompilation. It is easy to get IR dumps and do diffs on them, etc. To make this work well, add a new getPrinterPass API to Pass so that each kind of pass (ModulePass, FunctionPass, etc.) can create a Pass suitable for dumping out the kind of object the Pass works on. llvm-svn: 100204
* Revert r100191 since it breaks objc in clang Mon P Wang2010-04-021-70/+0
| | | | llvm-svn: 100199
* Reapply address space patch after fixing an issue in MemCopyOptimizer.Mon P Wang2010-04-021-0/+70
| | | | | | | Added support for address spaces and added a isVolatile field to memcpy, memmove, and memset, e.g., llvm.memcpy.i32(i8*, i8*, i32, i32) -> llvm.memcpy.p0i8.p0i8.i32(i8*, i8*, i32, i32, i1) llvm-svn: 100191
* Revert r100143.Eric Christopher2010-04-013-108/+5
| | | | llvm-svn: 100146
* Add some switches helpful for debugging:David Greene2010-04-013-5/+108
| | | | | | | | | | | | | | | | | | | | | | | -print-before=<Pass Name> Dump IR before running pass <Pass Name>. -print-before-all Dump IR before running each pass. -print-after-all Dump IR after running each pass. These are helpful when tracking down a miscompilation. It is easy to get IR dumps and do diffs on them, etc. To make this work well, add a new getPrinterPass API to Pass so that each kind of pass (ModulePass, FunctionPass, etc.) can create a Pass suitable for dumping out the kind of object the Pass works on. llvm-svn: 100143
* Introduce ImmutableCallSite, useful for contexts where no mutationGabor Greif2010-04-012-6/+1
| | | | | | | | | is necessary. Inherits from new templated baseclass CallSiteBase<> which is highly customizable. Base CallSite on it too, in a configuration that allows full mutation. Adapt some call sites in analyses to employ ImmutableCallSite. llvm-svn: 100100
* switch IRBuilder to use NewDebugLoc for locations insteadChris Lattner2010-04-011-3/+5
| | | | | | | | | | of raw mdnodes. This allows frontends to specify debug locations without ever creating an MDNode for the DILocation. This requires a corresponding clang/llvm-gcc change which I'll try to commit as simultaneously as possible. llvm-svn: 100095
* Switch the representation of the location in instruction fromChris Lattner2010-04-012-8/+28
| | | | | | | | | | | | | being a TrackingVH<MDNode> to a NewDebugLoc, shrinking sizeof(Instruction) a lot, and providing clients the ability to deal with locations in terms of NewDebugLoc instead of having to deal with Metadata. This is still fully compatible with all clients that *do* use MDNodes for everything of course. No functionality change. llvm-svn: 100088
* fix a bug in DebugRecVH::deleted/allUsesReplacedWith. If an Chris Lattner2010-04-011-4/+7
| | | | | | | entry in the Scope+InlinedAt drops to a non-canonical form, we need to reset the idx member of both VH's to 0. llvm-svn: 100084
* add a method to decode a DILocation into a NewDebugLoc.Chris Lattner2010-04-011-0/+15
| | | | llvm-svn: 100081
* update cmakefile.Chris Lattner2010-04-011-0/+1
| | | | llvm-svn: 100074
* Add a new "NewDebugLoc" class which will eventually replace DebugLoc,Chris Lattner2010-04-012-1/+314
| | | | | | | | | | | | and will replace the 'DbgInfo' member in Instruction. The benefit of NewDebugLoc is that it is compact (8 bytes vs 12/24 bytes for the DbgInfo member in Instruction on a 32/64 bit system), it means that we will end up not having to allocate MDNodes to represent the "DILocations" in common cases of -O0 -g, and it is much more efficient to get things out of than the MDNode. llvm-svn: 100072
* Bump SmallString size a bit to avoid malloc trashing.Benjamin Kramer2010-03-311-7/+3
| | | | llvm-svn: 100010
OpenPOWER on IntegriCloud