summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
* Don't forget to check FlagNW when determining whether an AddRecExpr will wrapNick Lewycky2011-11-091-2/+3
| | | | | | or not. Patch by Brendon Cahoon! llvm-svn: 144173
* Remove extra ';'Devang Patel2011-11-091-2/+2
| | | | llvm-svn: 144172
* Remove the pubnames section, no one consumes it.Eric Christopher2011-11-095-87/+3
| | | | llvm-svn: 144169
* Add support for encoding immediates in icmp and fcmp. Hopefully, this willChad Rosier2011-11-091-12/+64
| | | | | | | remove a fair number of unnecessary materialized constants. rdar://10412592 llvm-svn: 144163
* Hide cpu name checking in ARMSubtarget.Evan Cheng2011-11-092-1/+2
| | | | llvm-svn: 144154
* Collapse DomainValues across loop back-edges.Jakob Stoklund Olesen2011-11-091-8/+35
| | | | | | | | | | | | | | During the initial RPO traversal of the basic blocks, remember the ones that are incomplete because of back-edges from predecessors that haven't been visited yet. After the initial RPO, revisit all those loop headers so the incoming DomainValues on the back-edges can be properly collapsed. This will properly fix execution domains on software pipelined code, like the included test case. llvm-svn: 144151
* Link to the live DomainValue after merging.Jakob Stoklund Olesen2011-11-091-13/+50
| | | | | | | | | | | | | | | | When merging two uncollapsed DomainValues, place a link to the active DomainValue from the passive DomainValue. This allows old stale references to the passive DomainValue to be updated to point to the active DomainValue. The new resolve() function finds the active DomainValue and updates the pointer. This change makes old live-out lists more useful since they may contain uncollapsed DomainValues that have since been merged into other DomainValues. llvm-svn: 144149
* Object/COFF: Fix PE reading.Michael J. Spencer2011-11-081-23/+30
| | | | llvm-svn: 144148
* Track reference count independently from clear().Jakob Stoklund Olesen2011-11-081-4/+4
| | | | | | This allows clear() to be called on a DomainValue with references. llvm-svn: 144147
* Properly handle Mips MC relocations and lower cpload and cprestore macros to ↵Bruno Cardoso Lopes2011-11-084-45/+191
| | | | | | | | MCInsts. Patch by Jack Carter. llvm-svn: 144139
* Emit the compact unwind *if* we have a compact unwind encoding.Bill Wendling2011-11-081-1/+1
| | | | | | *headdesk* llvm-svn: 144138
* Call release() directly when cleaning up the remaining DomainValues.Jakob Stoklund Olesen2011-11-081-5/+3
| | | | | | There is no need to involve the LiveRegs array and kill() any longer. llvm-svn: 144133
* Rename all methods to follow style guide.Jakob Stoklund Olesen2011-11-081-42/+42
| | | | | | No functional change. llvm-svn: 144132
* Handle reference counts in one function: release().Jakob Stoklund Olesen2011-11-081-15/+18
| | | | | | | | | | This new function will decrement the reference count, and collapse a domain value when the last reference is gone. This simplifies DomainValue reference counting, and decouples it from the LiveRegs array. llvm-svn: 144131
* Also add the linkage name to the name accelerator tables if it existsEric Christopher2011-11-082-2/+19
| | | | | | and is different than the normal name. llvm-svn: 144130
* Add a hack to the scheduler to disable pseudo-two-address dependencies inDan Gohman2011-11-081-3/+13
| | | | | | | | | | basic blocks containing calls. This works around a problem in which these artificial dependencies can get tied up in calling seqeunce scheduling in a way that makes the graph unschedulable with the current approach of using artificial physical register dependencies for calling sequences. This fixes PR11314. llvm-svn: 144124
* Add workaround for Cortex-M3 errata 602117 by replacing ldrd x, y, [x] with ↵Evan Cheng2011-11-081-3/+9
| | | | | | ldm or ldr pairs. llvm-svn: 144123
* ARMFastISel doesn't support thumb1. Rename isThumb to isThumb2 to reflect this.Chad Rosier2011-11-081-39/+39
| | | | | | No functional change intended. llvm-svn: 144122
* Fix code to match comment. Fixes PR11340, a regression from r143209.Eli Friedman2011-11-081-1/+1
| | | | llvm-svn: 144121
* Clear old DomainValue after merging.Jakob Stoklund Olesen2011-11-081-1/+6
| | | | | | | | | | | | The old value may still be referenced by some live-out list, and we don't wan't to collapse those instructions twice. This fixes the "Can only swizzle VMOVD" assertion in some armv7 SPEC builds. <rdar://problem/10413292> llvm-svn: 144117
* MC/COFF: Correctly emit the size of an empty string table.Michael J. Spencer2011-11-081-0/+1
| | | | llvm-svn: 144111
* LICM pass now understands invariant load metadata. Nothing generates this ↵Pete Cooper2011-11-081-0/+2
| | | | | | yet so it will currently never get used in real tests llvm-svn: 144107
* Add the base ObjC method name to the names lookup table as well.Eric Christopher2011-11-081-0/+6
| | | | llvm-svn: 144105
* Lower mem-ops to unaligned i32/i16 load/stores on ARM where supported.Lang Hames2011-11-082-0/+17
| | | | | | | | Add support for trimming constants to GetDemandedBits. This fixes some funky constant generation that occurs when stores are expanded for targets that don't support unaligned stores natively. llvm-svn: 144102
* Added invariant field to the DAG.getLoad method and changed all calls.Pete Cooper2011-11-0823-194/+241
| | | | | | When this field is true it means that the load is from constant (runt-time or compile-time) and so can be hoisted from loops or moved around other memory accesses llvm-svn: 144100
* A few more places where we can avoid multiple size queries.Eric Christopher2011-11-081-7/+7
| | | | llvm-svn: 144099
* Don't evaluate Data.size() on every iteration.Eric Christopher2011-11-081-1/+1
| | | | llvm-svn: 144095
* This patch handles unaligned loads and stores in Mips JIT. Mips backendBruno Cardoso Lopes2011-11-082-6/+148
| | | | | | | | | | | | implements unaligned loads and stores with assembler macro-instructions ulw, usw, ulh, ulhu, ush, and this patch emits corresponding instructions instead of these macros. Since each unaligned load/store is expanded into two corresponding loads/stores where offset for second load/store is modified by +3 (for words) or +1 (for halfwords). Patch by Petar Jovanovic and Sasa Stankovic. llvm-svn: 144081
* PPCInstrInfo.cpp: Fix one "unused" warning.NAKAMURA Takumi2011-11-081-0/+1
| | | | llvm-svn: 144071
* Make sure to mark vector extload's as expand on ARM. Fixes PR11319.Eli Friedman2011-11-081-9/+11
| | | | llvm-svn: 144057
* Add a bunch of calls to RemoveDeadNode in LegalizeDAG, so legalization ↵Eli Friedman2011-11-082-3/+25
| | | | | | | | doesn't get confused by CSE later on. Fixes PR11318. Re-commit of r144034, with an extra fix so that RemoveDeadNode doesn't blow up. llvm-svn: 144055
* Add x86 isel logic and patterns to match movlps from clang generated IR for ↵Evan Cheng2011-11-082-6/+11
| | | | | | _mm_loadl_pi(). rdar://10134392, rdar://10050222 llvm-svn: 144052
* Enable support for returning i1, i8, and i16. Nothing special todo as it's theChad Rosier2011-11-082-1/+9
| | | | | | | | callee's responsibility to sign or zero-extend the return value. The additional test case just checks to make sure the calls are selected (i.e., -fast-isel-abort doesn't assert). llvm-svn: 144047
* Revert r144034 while I try to track down a crash.Eli Friedman2011-11-071-19/+3
| | | | llvm-svn: 144044
* This code is dead, what with the new EH model and the auto-upgraders in place.Bill Wendling2011-11-071-639/+12
| | | | | | Delete! llvm-svn: 144043
* Kill and collapse outstanding DomainValues.Jakob Stoklund Olesen2011-11-071-5/+14
| | | | | | | | | | | | DomainValues that are only used by "don't care" instructions are now collapsed to the first possible execution domain after all basic blocks have been processed. This typically means the PS domain on x86. For example, the vsel_i64 and vsel_double functions in sse2-blend.ll are completely collapsed to the PS domain instead of containing a mix of execution domains created by isel. llvm-svn: 144037
* InstCombine now optimizes vector udiv by power of 2 to shiftsPete Cooper2011-11-071-5/+9
| | | | | | Fixes r8429 llvm-svn: 144036
* Add a bunch of calls to RemoveDeadNode in LegalizeDAG, so legalization ↵Eli Friedman2011-11-071-3/+19
| | | | | | doesn't get confused by CSE later on. Fixes PR11318. llvm-svn: 144034
* Add all completed and named types to the dwarf type accelerator tables.Eric Christopher2011-11-072-2/+7
| | | | llvm-svn: 144027
* Use a reverse post order instead of a DFS order.Jakob Stoklund Olesen2011-11-071-6/+5
| | | | | | | | The enterBasicBlock() function is combining live-out values from predecessor blocks. The RPO traversal means that more predecessors have been visited when that happens, only back-edges are missing. llvm-svn: 144025
* Move the hash function to using and taking a StringRef.Eric Christopher2011-11-071-4/+4
| | | | llvm-svn: 144024
* Simple destructor to delete the hash data we created earlier.Eric Christopher2011-11-072-0/+6
| | | | llvm-svn: 144023
* Allow i1 to be promoted to i32 for ARM AAPCS and AAPCS-VFP calling ↵Chad Rosier2011-11-071-1/+1
| | | | | | convention as well. llvm-svn: 144021
* Extract two methods. No functional change.Jakob Stoklund Olesen2011-11-071-18/+26
| | | | llvm-svn: 144020
* Various Mips64 floating point instruction patterns.Akira Hatanaka2011-11-071-3/+18
| | | | llvm-svn: 144019
* Add definition of the base class for floating point comparison instructionsAkira Hatanaka2011-11-071-8/+8
| | | | | | and add Mips64's version too. llvm-svn: 144018
* Add code needed for copying between 64-bit integer and floating pointerAkira Hatanaka2011-11-071-0/+6
| | | | | | registers. llvm-svn: 144017
* Add definitions of 64-bit instructions which move data between integer andAkira Hatanaka2011-11-071-0/+8
| | | | | | floating pointer registers. llvm-svn: 144016
* MBB doesn't need to be a class member.Jakob Stoklund Olesen2011-11-071-6/+4
| | | | llvm-svn: 144015
* Fix pass name after the source was moved.Jakob Stoklund Olesen2011-11-071-1/+1
| | | | llvm-svn: 144014
OpenPOWER on IntegriCloud