- Mar 31, 2010
-
-
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
-