OSDN Git Service

For the current Atom processor, the fastest way to handle a call
authorPreston Gurd <preston.gurd@intel.com>
Wed, 27 Mar 2013 19:14:02 +0000 (19:14 +0000)
committerPreston Gurd <preston.gurd@intel.com>
Wed, 27 Mar 2013 19:14:02 +0000 (19:14 +0000)
commit1edadea42f6f5c393b4fdb9d7ce1cf7eb9c24ab4
tree0703e20d41246fa36a72779d0d1ba5b58b6ee2d7
parente915047fed99221afb8c540d8a7e81038a6483f1
For the current Atom processor, the fastest way to handle a call
indirect through a memory address is to load the memory address into
a register and then call indirect through the register.

This patch implements this improvement by modifying SelectionDAG to
force a function address which is a memory reference to be loaded
into a virtual register.

Patch by Sriram Murali.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178171 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/X86/X86.td
lib/Target/X86/X86ISelLowering.cpp
lib/Target/X86/X86Subtarget.cpp
lib/Target/X86/X86Subtarget.h
test/CodeGen/X86/atom-call-reg-indirect.ll [new file with mode: 0644]