- Nov 09, 2011
-
-
Craig Topper authored
Enable execution dependency fix pass for YMM registers when AVX2 is enabled. Add AVX2 logical operations to list of replaceable instructions. llvm-svn: 144179
-
Craig Topper authored
llvm-svn: 144176
-
Craig Topper authored
llvm-svn: 144174
-
Nick Lewycky authored
or not. Patch by Brendon Cahoon! llvm-svn: 144173
-
Devang Patel authored
llvm-svn: 144172
-
Eric Christopher authored
llvm-svn: 144169
-
Chad Rosier authored
remove a fair number of unnecessary materialized constants. rdar://10412592 llvm-svn: 144163
-
Evan Cheng authored
llvm-svn: 144154
-
Jakob Stoklund Olesen authored
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
-
Jakob Stoklund Olesen authored
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
-
Michael J. Spencer authored
llvm-svn: 144148
-
Jakob Stoklund Olesen authored
This allows clear() to be called on a DomainValue with references. llvm-svn: 144147
-
- Nov 08, 2011
-
-
Bruno Cardoso Lopes authored
Patch by Jack Carter. llvm-svn: 144139
-
Bill Wendling authored
*headdesk* llvm-svn: 144138
-
Jakob Stoklund Olesen authored
There is no need to involve the LiveRegs array and kill() any longer. llvm-svn: 144133
-
Jakob Stoklund Olesen authored
No functional change. llvm-svn: 144132
-
Jakob Stoklund Olesen authored
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
-
Eric Christopher authored
and is different than the normal name. llvm-svn: 144130
-
Dan Gohman authored
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
-
Evan Cheng authored
llvm-svn: 144123
-
Chad Rosier authored
No functional change intended. llvm-svn: 144122
-
Eli Friedman authored
llvm-svn: 144121
-
Jakob Stoklund Olesen authored
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
-
Michael J. Spencer authored
llvm-svn: 144111
-
Pete Cooper authored
LICM pass now understands invariant load metadata. Nothing generates this yet so it will currently never get used in real tests llvm-svn: 144107
-
Eric Christopher authored
llvm-svn: 144105
-
Lang Hames authored
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
-
Pete Cooper authored
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
-
Eric Christopher authored
llvm-svn: 144099
-
Eric Christopher authored
llvm-svn: 144095
-
Bruno Cardoso Lopes authored
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
-
NAKAMURA Takumi authored
llvm-svn: 144071
-
Eli Friedman authored
llvm-svn: 144057
-
Eli Friedman authored
Add a bunch of calls to RemoveDeadNode in LegalizeDAG, so legalization 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
-
Evan Cheng authored
Add x86 isel logic and patterns to match movlps from clang generated IR for _mm_loadl_pi(). rdar://10134392, rdar://10050222 llvm-svn: 144052
-
Chad Rosier authored
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
-
Eli Friedman authored
llvm-svn: 144044
-
Bill Wendling authored
Delete! llvm-svn: 144043
-
Jakob Stoklund Olesen authored
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
-
Pete Cooper authored
Fixes r8429 llvm-svn: 144036
-