- Nov 08, 2011
-
-
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
-
- Nov 07, 2011
-
-
Jakob Stoklund Olesen authored
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
-
Jakob Stoklund Olesen authored
llvm-svn: 144020
-
Jakob Stoklund Olesen authored
llvm-svn: 144015
-
Jakob Stoklund Olesen authored
llvm-svn: 144014
-
- Sep 28, 2011
-
-
Jakob Stoklund Olesen authored
No functional change intended. llvm-svn: 140664
-
Jakob Stoklund Olesen authored
I'll clean up the source in the next commit. llvm-svn: 140663
-
Jakob Stoklund Olesen authored
This also enables domain swizzling for AVX code which required a few trivial test changes. The pass will be moved to lib/CodeGen shortly. llvm-svn: 140659
-
Jakob Stoklund Olesen authored
I am going to unify the SSEDomainFix and NEONMoveFix passes into a single target independent pass. They are essentially doing the same thing. llvm-svn: 140652
-
- Aug 06, 2010
-
-
Owen Anderson authored
llvm-svn: 110460
-
Owen Anderson authored
llvm-svn: 110410
-
Owen Anderson authored
ID member as the sole unique type identifier. Clean up APIs related to this change. llvm-svn: 110396
-
- May 26, 2010
-
-
Jakob Stoklund Olesen authored
This means that our Registers are now ordered R7, R8, R9, R10, R12, ... Not R1, R10, R11, R12, R2, R3, ... llvm-svn: 104745
-
- Apr 13, 2010
-
-
Dan Gohman authored
MachineBasicBlock::livein_iterator a const_iterator, because clients shouldn't ever be using the iterator interface to mutate the livein set. llvm-svn: 101147
-
- Apr 07, 2010
-
-
John McCall authored
solution. The only reason these don't fire with gcc-4.2 is that gcc turns off part of -Wsign-compare in C++ on accident. llvm-svn: 100581
-
- Apr 06, 2010
-
-
Jakob Stoklund Olesen authored
This fixes the Bullet regression on i386/nocona. llvm-svn: 100553
-
- Apr 04, 2010
-
-
Jakob Stoklund Olesen authored
Restrict bit mask operations to the DomainValue class. Rename methods for clarity. llvm-svn: 100353
-
Jakob Stoklund Olesen authored
llvm-svn: 100332
-
- Mar 31, 2010
-
-
Chris Lattner authored
llvm-svn: 100042
-
Jakob Stoklund Olesen authored
llvm-svn: 100037
-
Jakob Stoklund Olesen authored
llvm-svn: 100016
-
Jakob Stoklund Olesen authored
llvm-svn: 99974
-
- Mar 30, 2010
-
-
Jakob Stoklund Olesen authored
llvm-svn: 99916
-
Jakob Stoklund Olesen authored
llvm-svn: 99855
-
Jakob Stoklund Olesen authored
Cross-block inference is primitive and wrong, but the pass is working otherwise. llvm-svn: 99848
-
- Mar 25, 2010
-
-
Daniel Dunbar authored
llvm-svn: 99542
-
Jakob Stoklund Olesen authored
On Nehalem and newer CPUs there is a 2 cycle latency penalty on using a register in a different domain than where it was defined. Some instructions have equvivalents for different domains, like por/orps/orpd. The SSEDomainFix pass tries to minimize the number of domain crossings by changing between equvivalent opcodes where possible. This is a work in progress, in particular the pass doesn't do anything yet. SSE instructions are tagged with their execution domain in TableGen using the last two bits of TSFlags. Note that not all instructions are tagged correctly. Life just isn't that simple. The SSE execution domain issue is very similar to the ARM NEON/VFP pipeline issue handled by NEONMoveFixPass. This pass may become target independent to handle both. llvm-svn: 99524
-
- Mar 24, 2010
-
-
Jakob Stoklund Olesen authored
This reverts commit 99345. It was breaking buildbots. llvm-svn: 99352
-
Jakob Stoklund Olesen authored
This is work in progress. So far, SSE execution domain tables are added to X86InstrInfo, and a skeleton pass is enabled with -sse-domain-fix. llvm-svn: 99345
-