summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
...
* Add a getExprForPersonalitySymbol method to MCAsmInfo. Use it whenRafael Espindola2011-04-286-3/+64
| | | | | | converting the symbol passed to .cfi_personality into bytes is the file. llvm-svn: 130400
* Mark the EH symbol global or weak if the corresponding function is.Rafael Espindola2011-04-283-0/+17
| | | | llvm-svn: 130397
* Fix the last -Wnon-pod-memset I'm seeing. This is benign, but appearsChandler Carruth2011-04-281-1/+1
| | | | | | | | | | | | | a bit more sinister as the memset doesn't do what the constructor does. There seems to be a cleaner solution than a cast here though, instead we can point the memset destination into the union its actually trying to clear. An alternative is to point to the Untyped member of this union. Review appreciated, and if that is cleaner I'm happy to switch. All of these should be functionally equivalent to the original code. llvm-svn: 130395
* teach GVN to widen integer loads when they are overaligned, when doing an Chris Lattner2011-04-282-30/+154
| | | | | | | | | | | wider load would allow elimination of subsequent loads, and when the wider load is still a native integer type. This eliminates a ton of loads on various benchmarks involving struct fields, though it is somewhat hobbled by clang not being very aggressive about field alignment. This is yet another step along the way towards resolving PR6627. llvm-svn: 130390
* Let the immediate leaf pattern take transforms and switch the signedEric Christopher2011-04-283-30/+30
| | | | | | | | immediate patterns in arm to using the pattern. Handles rdar://9299434 llvm-svn: 130386
* move PR9803 to this readme.Chris Lattner2011-04-281-0/+28
| | | | llvm-svn: 130385
* Add a small temporary hack for producing identical eh_frame sections on OS X.Rafael Espindola2011-04-282-6/+14
| | | | | | | This removes one of the main advantages of moving eh_frame to MC, but makes the transition a lot easier to debug (run md5). llvm-svn: 130379
* Produce the EH_frame# symbols if needed.Rafael Espindola2011-04-281-2/+11
| | | | llvm-svn: 130378
* Forward isFunctionEHFrameSymbolPrivate. If it is false, produce the foo.ehRafael Espindola2011-04-281-0/+7
| | | | | | symbols. llvm-svn: 130375
* Teach dwarf writer to handle complex address expression for .debug_loc entries.Devang Patel2011-04-286-27/+129
| | | | | | | This fixes clang generated blocks' variables' debug info. Radar 9279956. llvm-svn: 130373
* Fix a silly mistake in r130338.Eli Friedman2011-04-281-1/+1
| | | | llvm-svn: 130360
* PTX: support for select_cc and fixes for setccJustin Holewinski2011-04-282-1/+41
| | | | | | | | | | - expansion of SELECT_CC into SETCC - force SETCC result type to i1 - custom selection for handling i1 using SETCC Patch by Dan Bailey llvm-svn: 130358
* PTX: support for selectJustin Holewinski2011-04-281-0/+15
| | | | | | | | | - selection of SELP instruction - new selp.ll test Patch by Dan Bailey llvm-svn: 130357
* PTX: mov fix and rounding correction for cvtJustin Holewinski2011-04-281-18/+18
| | | | | | | | | | - fix typo in MOV - correct fp rounding on CVT - new cvt.ll test Patch by Dan Bailey llvm-svn: 130356
* PTX: support for fnegJustin Holewinski2011-04-281-0/+23
| | | | | | | | | - selection of FNEG instruction - new fneg.ll test Patch by Dan Bailey llvm-svn: 130355
* PTX: support for zext loads and trunc storesJustin Holewinski2011-04-281-1/+13
| | | | | | | | - expansion of EXTLOAD and TRUNCSTORE instructions Patch by Dan Bailey llvm-svn: 130354
* PTX: support for bitwise operations on predicatesJustin Holewinski2011-04-281-0/+8
| | | | | | | | | - selection of bitwise preds (AND, OR, XOR) - new bitwise.ll test Patch by Dan Bailey llvm-svn: 130353
* PTX: patch to AsmPrinterJustin Holewinski2011-04-281-22/+47
| | | | | | | | | - immediate value cast as long not int - handles initializer for constant array Patch by Dan Bailey llvm-svn: 130352
* Reverting r130340 in the unlikely event that it's responsible for a llvm-gcc ↵Andrew Trick2011-04-281-1/+1
| | | | | | stage2 compiler error. llvm-svn: 130350
* fast-isel sret. We actually don't need to do anything special on x86. :) ↵Eli Friedman2011-04-271-1/+0
| | | | | | rdar://problem/9303592 . llvm-svn: 130348
* Remove unnecessary argument.Rafael Espindola2011-04-275-8/+7
| | | | llvm-svn: 130343
* Rename getPersonalityPICSymbol to getCFIPersonalitySymbol, document it, andRafael Espindola2011-04-275-21/+60
| | | | | | | | | | | | | | | | | | give it a bit more responsibility. Also implement it for MachO. If hacked to use cfi, 32 bit MachO will produce .cfi_personality 155, L___gxx_personality_v0$non_lazy_ptr and 64 bit will produce .cfi_presonality ___gxx_personality_v0 The general idea is that .cfi_personality gets passed the final symbol. It is up to codegen to produce it if using indirect representation (like 32 bit MachO), but it is up to MC to decide which relocations to create. llvm-svn: 130341
* Fixes PR9730: indvars: An asserting value handle still pointed to this valueAndrew Trick2011-04-271-1/+1
| | | | | | | | | Modified LinearFunctionTestReplace to push the condition on the dead list instead of eagerly deleting it. This can cause unnecessary IV rewrites, which should have no effect on codegen and will not be an issue once we stop generating canonical IVs. llvm-svn: 130340
* Simplify handling of variables with complex address (i.e. blocks variables)Devang Patel2011-04-273-44/+32
| | | | llvm-svn: 130339
* Make the fast-isel code for literal 0.0 a bit shorter/faster, since 0.0 is ↵Eli Friedman2011-04-272-2/+47
| | | | | | common. rdar://problem/9303592 . llvm-svn: 130338
* Remove unused function.Eli Friedman2011-04-271-47/+0
| | | | llvm-svn: 130337
* Fix indentation.Rafael Espindola2011-04-271-21/+21
| | | | llvm-svn: 130331
* Fix a bug in the case that there is no add or subtract symbol and the offsetKevin Enderby2011-04-271-2/+6
| | | | | | value is zero so it does not add a NULL expr operand. llvm-svn: 130330
* Teach BasicAA about arm.neon.vld1 and vst1.Dan Gohman2011-04-271-0/+20
| | | | llvm-svn: 130327
* Revert r130178. It turned out to be not the optimal path to emit complex ↵Devang Patel2011-04-273-12/+8
| | | | | | location expressions. llvm-svn: 130326
* If converter was being too cute. It look for root BBs (which don't haveEvan Cheng2011-04-271-18/+3
| | | | | | | | | | successors) and use inverse depth first search to traverse the BBs. However that doesn't work when the CFG has infinite loops. Simply do a linear traversal of all BBs work just fine. rdar://9344645 llvm-svn: 130324
* When analyzing functions known to only access argument pointees,Dan Gohman2011-04-271-9/+28
| | | | | | | | | only check arguments with pointer types. Update the documentation of IntrReadArgMem reflect this. While here, add support for TBAA tags on intrinsic calls. llvm-svn: 130317
* Corrects an old, old typo in a case that doesn't seem to be reached in practice.Andrew Trick2011-04-271-1/+1
| | | | llvm-svn: 130316
* Simplify cfg inserts a call to trap when unreachable code is detected. ↵Devang Patel2011-04-271-1/+2
| | | | | | Assign DebugLoc to this new trap instruction. llvm-svn: 130315
* Also add <imp-def> operands for defined and dead super-registers when rewriting.Jakob Stoklund Olesen2011-04-271-6/+15
| | | | | | | We cannot rely on the <imp-def> operands added by LiveIntervals in all cases as demonstrated by the test case. llvm-svn: 130313
* Factor a bit of code to MCStreamer::EmitLabel. Keep track of the lastRafael Espindola2011-04-273-7/+14
| | | | | | | | | | | | non private symbol. This will be use for handling foo: .cfi_startproc ... On OS X where we have to create a foo.eh symbol. llvm-svn: 130305
* Stop trying to have instcombine preserve LCSSA form: this was notDuncan Sands2011-04-273-6/+0
| | | | | | | | | | effective in avoiding recomputation of LCSSA form; the widespread use of instsimplify (which looks through phi nodes) means it was not preserving LCSSA form anyway; and instcombine is no longer scheduled in the middle of the loop passes so this doesn't matter anymore. llvm-svn: 130301
* Test case and comment for PR9633.Andrew Trick2011-04-271-2/+3
| | | | llvm-svn: 130294
* Refactor out code to fast-isel a memcpy operation with a small constantEli Friedman2011-04-271-32/+40
| | | | | | length. (I'm planning to use this to implement byval.) llvm-svn: 130274
* Force some values to be absolute and align based on the FDE pointers size. A ↵Rafael Espindola2011-04-271-6/+6
| | | | | | | | small step towards using .cfi_* on OS X. llvm-svn: 130273
* Fix an edge case involving branches in fast-isel on x86.Eli Friedman2011-04-271-2/+4
| | | | | | rdar://problem/9303306 . llvm-svn: 130272
* Fix for PR9633 [indvars] Assertion `isa<X>(Val) && "cast<Ty>() argument of ↵Andrew Trick2011-04-271-2/+7
| | | | | | | | | incompatible type!"' failed. Added a type check in ScalarEvolution::computeSCEVAtScope to handle the case in which operands of an AddRecExpr in the current scope are folded. llvm-svn: 130271
* Enhance memdep to return clobber relation between noalias loads whenChris Lattner2011-04-261-3/+95
| | | | | | | | | | | | | | | | an earlier load could be widened to encompass a later load. For example, if we see: X = load i8* P, align 4 Y = load i8* (P+3), align 1 and we have a 32-bit native integer type, we can widen the former load to i32 which then makes the second load redundant. GVN can't actually do anything with this load/load relation yet, so this isn't testable, but it is the next step to resolving PR6627, and a fairly general class of "merge neighboring loads" missed optimizations. llvm-svn: 130250
* Add a safe-guard against repeated splitting for some rare cases.Jakob Stoklund Olesen2011-04-263-3/+43
| | | | | | | The number of blocks covered by a live range must be strictly decreasing when splitting, otherwise we can't allow repeated splitting. llvm-svn: 130249
* use AA::isMustAlias to simplify some calls.Chris Lattner2011-04-261-5/+3
| | | | llvm-svn: 130248
* remove support for llvm.invariant.end from memdep. It is a Chris Lattner2011-04-261-37/+0
| | | | | | work-in-progress that is not progressing, and it has issues. llvm-svn: 130247
* Be careful about scheduling nodes above previous calls. It increase usages ofEvan Cheng2011-04-262-1/+61
| | | | | | | | | | | | more callee-saved registers and introduce copies. Only allows it if scheduling a node above calls would end up lessen register pressure. Call operands also has added ABI restrictions for register allocation, so be extra careful with hoisting them above calls. rdar://9329627 llvm-svn: 130245
* Transform: "icmp eq (trunc (lshr(X, cst1)), cst" to "icmp (and X, mask), cst"Chris Lattner2011-04-262-46/+25
| | | | | | | | | | when X has multiple uses. This is useful for exposing secondary optimizations, but the X86 backend isn't ready for this when X has a single use. For example, this can disable load folding. This is inching towards resolving PR6627. llvm-svn: 130238
* some random cleanups, no functionality change.Chris Lattner2011-04-261-5/+5
| | | | llvm-svn: 130237
* ARM and Thumb2 support for atomic MIN/MAX/UMIN/UMAX loads.Jim Grosbach2011-04-263-0/+184
| | | | | | rdar://9326019 llvm-svn: 130234
OpenPOWER on IntegriCloud