summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
* Teach branch folding pass about implicit_def instructions. Unfortunately we ↵Evan Cheng2008-04-101-1/+56
| | | | | | can't just eliminate them since register scavenger expects every register use to be defined. However, we can delete them when there are no intra-block uses. Carefully removing some implicit def's which enable more blocks to be optimized away. llvm-svn: 49461
* Disable an xform we've had for a long time, pow(x,0.5) -> sqrt.Chris Lattner2008-04-101-0/+8
| | | | | | This is not safe for all inputs. llvm-svn: 49458
* - More aggressively coalescing away copies whose source is defined by an ↵Evan Cheng2008-04-093-76/+297
| | | | | | | | implicit_def. - Added insert_subreg coalescing support. llvm-svn: 49448
* Make isVectorClearMaskLegal's operand list const.Dan Gohman2008-04-092-4/+5
| | | | llvm-svn: 49446
* Add XMM1 as a second return value register for f32 and f64 on x86-64. ThisDan Gohman2008-04-091-4/+4
| | | | | | | is needed for the x86-64-ABI handling of structs that contain floating-point members that are returned by value. llvm-svn: 49441
* Add DX as a second return value register for i16 on x86.Dan Gohman2008-04-091-1/+1
| | | | llvm-svn: 49440
* Generalize getUnaryFloatFunction to handle any FP unary function, automaticallyChris Lattner2008-04-091-17/+33
| | | | | | figuring out the suffix to use. implement pow(2,x) -> exp2(x). llvm-svn: 49437
* use the new ConstantFP::get method to make this work withChris Lattner2008-04-091-11/+4
| | | | | | long double and simplify the code. llvm-svn: 49435
* Be conservative if getresult operand is neither call nor invoke.Devang Patel2008-04-091-2/+3
| | | | llvm-svn: 49430
* Factor a bunch of functionality related to memcpy and memset transforms out of Owen Anderson2008-04-092-620/+769
| | | | | | GVN and into its own pass. llvm-svn: 49419
* Remove accidentally duplicated code.Owen Anderson2008-04-091-4/+0
| | | | llvm-svn: 49418
* add a simplified accessor for creating an fp constant of a Chris Lattner2008-04-091-13/+25
| | | | | | particular value but variable type. llvm-svn: 49416
* Missed a hasInterval check.Evan Cheng2008-04-091-0/+2
| | | | llvm-svn: 49415
* add a version of ConstantFP::get that doesn't take a redundant Type* value,Chris Lattner2008-04-091-21/+22
| | | | | | start migrating code over to use it. llvm-svn: 49413
* many cleanups to the pow optimizer. Allow it to handle powf,Chris Lattner2008-04-091-34/+50
| | | | | | add support for pow(x, 2.0) -> x*x. llvm-svn: 49411
* Rename -disable-required-unwind-tables to unwind-tables-optional.Dale Johannesen2008-04-081-2/+2
| | | | llvm-svn: 49389
* Convenience method for setting the nounwindDuncan Sands2008-04-081-0/+9
| | | | | | attribute for a function. llvm-svn: 49373
* Fix insert point handling for multiple return values.Devang Patel2008-04-081-4/+12
| | | | llvm-svn: 49367
* Handle the situation in 2008-01-25-EmptyFunction.llDale Johannesen2008-04-081-10/+11
| | | | | | correctly when unwind info is being generated. llvm-svn: 49366
* Implement new llc flag -disable-required-unwind-tables.Dale Johannesen2008-04-084-5/+19
| | | | | | Corresponds to -fno-unwind-tables (usually default in gcc). llvm-svn: 49361
* Make getDirnameSep a static method (not part of Path's interface).Ted Kremenek2008-04-073-3/+7
| | | | llvm-svn: 49354
* Added method Path::getDirname().Ted Kremenek2008-04-073-2/+45
| | | | llvm-svn: 49352
* Rename MemOperand to MachineMemOperand. This was suggested byDan Gohman2008-04-075-16/+17
| | | | | | | review feedback from Chris quite a while ago. No functionality change. llvm-svn: 49348
* Add operator= implementations to SparseBitVector, allowing it to be used in ↵Owen Anderson2008-04-071-16/+8
| | | | | | | | | GVN. This results in both time and memory savings for GVN. For example, one testcase went from 10.5s to 6s with this patch. llvm-svn: 49345
* Fix PR 2169.Daniel Berlin2008-04-071-0/+3
| | | | llvm-svn: 49339
* Use Intrinsic::getDeclaration in more places.Duncan Sands2008-04-072-22/+9
| | | | llvm-svn: 49338
* The "stacksave is not nounwind problem" no longerDuncan Sands2008-04-071-8/+3
| | | | | | | | | needs to be fixed here - a previous commit made sure that intrinsics always get the right attributes. So remove no-longer needed code, and while there use Intrinsic::getDeclaration rather than getOrInsertFunction. llvm-svn: 49337
* Use Intrinsic::getDeclaration to get hold ofDuncan Sands2008-04-071-7/+8
| | | | | | | intrinsics. Fix up the argument type (should be i8*, was an array*). llvm-svn: 49336
* Make sure that intrinsics automagically get theDuncan Sands2008-04-072-3/+9
| | | | | | | right parameter attributes no matter how they are obtained. llvm-svn: 49335
* Re-commit of the r48822, where the infinite looping problem discoveredRoman Levenstein2008-04-079-117/+131
| | | | | | by Dan Gohman is fixed. llvm-svn: 49330
* Make GVN more memory efficient, particularly on code that contains a large ↵Owen Anderson2008-04-071-1/+15
| | | | | | | | number of allocations, which GVN can't optimize anyways. llvm-svn: 49329
* Mark calls to llvm.stacksave, llvm.stackrestore asDale Johannesen2008-04-071-1/+4
| | | | | | | | nounwind. When such calls are inlined into something else that is invoked, they were getting changed to invokes, which is badness. llvm-svn: 49299
* regenerateGabor Greif2008-04-063-4989/+3649
| | | | llvm-svn: 49293
* fix warnings with assertions disabled.Chris Lattner2008-04-061-21/+6
| | | | llvm-svn: 49285
* Silence warning when no assertions.Chris Lattner2008-04-061-1/+2
| | | | llvm-svn: 49284
* silence a warning when assertions are disabled.Chris Lattner2008-04-061-1/+1
| | | | llvm-svn: 49283
* fix a warningGabor Greif2008-04-061-1/+1
| | | | llvm-svn: 49282
* Prefer to expand mask for xor to -1, so we have a chance to turn it into a not.Torok Edwin2008-04-061-4/+19
| | | | | | | If it cannot be expanded, it will keep the old behaviour and try to shrink the constant. Part of enhancement for PR2191. llvm-svn: 49280
* API changes for class Use size reduction, wave 1.Gabor Greif2008-04-0656-571/+621
| | | | | | | | Specifically, introduction of XXX::Create methods for Users that have a potentially variable number of Uses. llvm-svn: 49277
* disable this for now.Chris Lattner2008-04-051-1/+1
| | | | llvm-svn: 49248
* 1. IMPLICIT_DEF can *re-define* any register.Evan Cheng2008-04-051-2/+42
| | | | | | | 2. Coalescer can now create an interesting situation where a register def can reaches itself without being killed. llvm-svn: 49246
* Favors pshufd over shufps when shuffling elements from one vector. pshufd is ↵Evan Cheng2008-04-052-48/+52
| | | | | | faster than shufps. llvm-svn: 49244
* Make sure both PendingLoads and PendingExports are flushedDale Johannesen2008-04-041-1/+4
| | | | | | | | | | before an invoke. Failure to do this causes references in the landing pad to variables that were not set. Fixes g++.dg/eh/delayslot1.C g++.dg/eh/fp-regs.C g++.old-deja/g++.brendan/eh1.C llvm-svn: 49243
* strdup needs <cstring>. This fixes a build error with g++-4.3.Torok Edwin2008-04-041-0/+1
| | | | llvm-svn: 49218
* Provide an initial cut at exposing JIT compiled symbols to performanceChris Lattner2008-04-041-1/+139
| | | | | | | tools. This is currently only enabled on the mac, but could easily be supported by other hosts that are interested. llvm-svn: 49207
* Make ExecutionEngine::updateGlobalMapping return the old mapping.Chris Lattner2008-04-041-5/+18
| | | | llvm-svn: 49206
* Undo PHI elimination copy placement patch. This causes coalescing ↵Evan Cheng2008-04-041-30/+1
| | | | | | (performace) issues. llvm-svn: 49198
* This is done.Evan Cheng2008-04-041-4/+0
| | | | llvm-svn: 49197
* if some functions don't have debug info, we were outputing the same label at ↵Andrew Lenharth2008-04-031-2/+5
| | | | | | the start of each of those functions. This makes assemblers unhappy llvm-svn: 49176
* - Turn copies of implicit_def into implicit_def instructions.Evan Cheng2008-04-032-6/+71
| | | | | | - Be smarter about coalescing copies from implicit_def. llvm-svn: 49168
OpenPOWER on IntegriCloud