[PATCH] D37289: [X86] Speculatively load operands of select instruction

Lama via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Aug 30 01:26:16 PDT 2017


lsaba created this revision.
Herald added a subscriber: mgorny.

For a select instruction where the operands are address calculations of two independent loads, the pass tries to speculate the loads and feed them into the select instruction, this allows early parallel execution of the loads and possibly memory folding into the CMOV instructions later on.
The pass currently only handles cases where the loads are elements of the same struct.


Repository:
  rL LLVM

https://reviews.llvm.org/D37289

Files:
  include/llvm/Target/TargetLowering.h
  lib/CodeGen/SelectionDAG/DAGCombiner.cpp
  lib/Target/X86/CMakeLists.txt
  lib/Target/X86/X86.h
  lib/Target/X86/X86ISelLowering.h
  lib/Target/X86/X86SpeculateSelectLoad.cpp
  lib/Target/X86/X86TargetMachine.cpp
  lib/Target/X86/X86TargetTransformInfo.cpp
  lib/Target/X86/X86TargetTransformInfo.h
  test/CodeGen/X86/speculate-select-load.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D37289.113204.patch
Type: text/x-patch
Size: 13811 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20170830/44188590/attachment.bin>


More information about the llvm-commits mailing list