Break false dependencies before partial register updates.
authorJakob Stoklund Olesen <stoklund@2pi.dk>
Tue, 15 Nov 2011 01:15:30 +0000 (01:15 +0000)
committerJakob Stoklund Olesen <stoklund@2pi.dk>
Tue, 15 Nov 2011 01:15:30 +0000 (01:15 +0000)
commitc2ecf3efbf375fc82bb1cea6afd7448498f9ae75
tree4cb44beba42b77f41d955701edd3e69df3ec1b68
parent2947f730a96fc602ea008bba1929ae4f0638850a
Break false dependencies before partial register updates.

Two new TargetInstrInfo hooks lets the target tell ExecutionDepsFix
about instructions with partial register updates causing false unwanted
dependencies.

The ExecutionDepsFix pass will break the false dependencies if the
updated register was written in the previoius N instructions.

The small loop added to sse-domains.ll runs twice as fast with
dependency-breaking instructions inserted.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144602 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/Target/TargetInstrInfo.h
lib/CodeGen/ExecutionDepsFix.cpp
lib/Target/X86/X86InstrInfo.cpp
lib/Target/X86/X86InstrInfo.h
test/CodeGen/X86/sse-domains.ll