aboutsummaryrefslogtreecommitdiff
path: root/llvm/tools/llvm-readobj/llvm-readobj.cpp
diff options
context:
space:
mode:
authorKrzysztof Parzyszek <kparzysz@codeaurora.org>2016-07-15 21:34:02 +0000
committerKrzysztof Parzyszek <kparzysz@codeaurora.org>2016-07-15 21:34:02 +0000
commit408e300933f2c5e8aaffb2539e47b89a2112b81b (patch)
tree00b95df37257660f9185c9ec5aaeb911b450e8bc /llvm/tools/llvm-readobj/llvm-readobj.cpp
parent13fb860c7847d371a6b18dc38e805366bc582e24 (diff)
downloadllvm-408e300933f2c5e8aaffb2539e47b89a2112b81b.zip
llvm-408e300933f2c5e8aaffb2539e47b89a2112b81b.tar.gz
llvm-408e300933f2c5e8aaffb2539e47b89a2112b81b.tar.bz2
[Hexagon] Handle instruction latency for 0 or 2 cycles
The Hexagon schedulers need to handle instructions with a latency of 0 or 2 more accurately. The problem, in v60, is that a dependence between two instructions with a 2 cycle latency can use a .cur version of the source to achieve a 0 cycle latency when the use is in the same packet. Any othe use, must be at least 2 packets later, or a stall occurs. In other words, the compiler does not want to schedule the dependent instructions 1 cycle later. To achieve this, the latency adjustment code allows only a single dependence to have a zero latency. All other instructions have the other value, which is typically 2 cycles. We use a heuristic to determine which instruction gets the 0 latency. The Hexagon machine scheduler was also changed to increase the cost associated with 0 latency dependences than can be scheduled in the same packet. Patch by Brendon Cahoon. llvm-svn: 275625
Diffstat (limited to 'llvm/tools/llvm-readobj/llvm-readobj.cpp')
0 files changed, 0 insertions, 0 deletions