History log of /llvm-project/llvm/lib/Target/X86/X86VZeroUpper.cpp (Results 26 – 50 of 60)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 5496a233 20-May-2016 Sanjay Patel <spatel@rotateright.com>

fix comments; NFC

llvm-svn: 270237


# 1dc57cb9 20-May-2016 Sanjay Patel <spatel@rotateright.com>

use range-loops; NFCI

llvm-svn: 270236


# 8bc63b2f 20-May-2016 Sanjay Patel <spatel@rotateright.com>

fix documentation comments; NFC

llvm-svn: 270234


# 1dbf7a57 04-Apr-2016 Derek Schuff <dschuff@google.com>

Add MachineFunctionProperty checks for AllVRegsAllocated for target passes

Summary:
This adds the same checks that were added in r264593 to all
target-specific passes that run after register allocat

Add MachineFunctionProperty checks for AllVRegsAllocated for target passes

Summary:
This adds the same checks that were added in r264593 to all
target-specific passes that run after register allocation.

Reviewers: qcolombet

Subscribers: jyknight, dsanders, llvm-commits

Differential Revision: http://reviews.llvm.org/D18525

llvm-svn: 265313

show more ...


Revision tags: llvmorg-3.8.0
# 719325fe 01-Mar-2016 Amjad Aboud <amjad.aboud@intel.com>

Disallow generating vzeroupper before return instruction (iret) in interrupt handler function.
This resolves https://llvm.org/bugs/show_bug.cgi?id=26412

Differential Revision: http://reviews.llvm.or

Disallow generating vzeroupper before return instruction (iret) in interrupt handler function.
This resolves https://llvm.org/bugs/show_bug.cgi?id=26412

Differential Revision: http://reviews.llvm.org/D17542

llvm-svn: 262319

show more ...


Revision tags: llvmorg-3.8.0-rc3
# 0de36ec1 12-Feb-2016 Yunzhong Gao <Yunzhong_Gao@playstation.sony.com>

Disable the vzeroupper insertion pass on PS4.

Differential Revision: http://reviews.llvm.org/D16837

llvm-svn: 260764


Revision tags: llvmorg-3.8.0-rc2, llvmorg-3.8.0-rc1, llvmorg-3.7.1, llvmorg-3.7.1-rc2, llvmorg-3.7.1-rc1, llvmorg-3.7.0, llvmorg-3.7.0-rc4, llvmorg-3.7.0-rc3, studio-1.4, llvmorg-3.7.0-rc2, llvmorg-3.7.0-rc1, llvmorg-3.6.2, llvmorg-3.6.2-rc1
# f00654e3 23-Jun-2015 Alexander Kornienko <alexfh@google.com>

Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC)

Apparently, the style needs to be agreed upon first.

llvm-svn: 240390


# 70bc5f13 19-Jun-2015 Alexander Kornienko <alexfh@google.com>

Fixed/added namespace ending comments using clang-tidy. NFC

The patch is generated using this command:

tools/clang/tools/extra/clang-tidy/tool/run-clang-tidy.py -fix \
-checks=-*,llvm-namespace-c

Fixed/added namespace ending comments using clang-tidy. NFC

The patch is generated using this command:

tools/clang/tools/extra/clang-tidy/tool/run-clang-tidy.py -fix \
-checks=-*,llvm-namespace-comment -header-filter='llvm/.*|clang/.*' \
llvm/lib/


Thanks to Eugene Kosov for the original patch!

llvm-svn: 240137

show more ...


Revision tags: llvmorg-3.6.1, llvmorg-3.6.1-rc1
# fbca70d7 05-May-2015 Sanjay Patel <spatel@rotateright.com>

use range-based for-loop; NFC

llvm-svn: 236544


Revision tags: llvmorg-3.5.2, llvmorg-3.5.2-rc1, llvmorg-3.6.0, llvmorg-3.6.0-rc4, llvmorg-3.6.0-rc3
# 4f8bdcb7 07-Feb-2015 Andrea Di Biagio <Andrea_DiBiagio@sn.scee.net>

Fix typos; NFC.

llvm-svn: 228493


# 05b81971 02-Feb-2015 Eric Christopher <echristo@gmail.com>

Reuse a bunch of cached subtargets and remove getSubtarget calls
without a Function argument.

llvm-svn: 227814


Revision tags: llvmorg-3.6.0-rc2, llvmorg-3.6.0-rc1
# ada0adf3 08-Jan-2015 Matthias Braun <matze@braunis.de>

X86: VZeroUpperInserter: shortcut should not trigger if we have any function live-ins.

llvm-svn: 225419


Revision tags: llvmorg-3.5.1, llvmorg-3.5.1-rc2, llvmorg-3.5.1-rc1, llvmorg-3.5.0, llvmorg-3.5.0-rc4, llvmorg-3.5.0-rc3, llvmorg-3.5.0-rc2
# fc6de428 05-Aug-2014 Eric Christopher <echristo@gmail.com>

Have MachineFunction cache a pointer to the subtarget to make lookups
shorter/easier and have the DAG use that to do the same lookup. This
can be used in the future for TargetMachine based caching lo

Have MachineFunction cache a pointer to the subtarget to make lookups
shorter/easier and have the DAG use that to do the same lookup. This
can be used in the future for TargetMachine based caching lookups from
the MachineFunction easily.

Update the MIPS subtarget switching machinery to update this pointer
at the same time it runs.

llvm-svn: 214838

show more ...


# d913448b 04-Aug-2014 Eric Christopher <echristo@gmail.com>

Remove the TargetMachine forwards for TargetSubtargetInfo based
information and update all callers. No functional change.

llvm-svn: 214781


Revision tags: llvmorg-3.5.0-rc1
# 0d5c99eb 22-May-2014 Eric Christopher <echristo@gmail.com>

Avoid using subtarget features when adding X86 specific passes to
the pass pipeline.

llvm-svn: 209382


Revision tags: llvmorg-3.4.2, llvmorg-3.4.2-rc1, llvmorg-3.4.1, llvmorg-3.4.1-rc2
# 84e68b29 22-Apr-2014 Chandler Carruth <chandlerc@gmail.com>

[Modules] Fix potential ODR violations by sinking the DEBUG_TYPE
definition below all of the header #include lines, lib/Target/...
edition.

llvm-svn: 206842


Revision tags: llvmorg-3.4.1-rc1
# 7c8189c6 17-Mar-2014 Lang Hames <lhames@gmail.com>

[X86] New and improved VZeroUpperInserter optimization.

- Adds support for inserting vzerouppers before tail-calls.
This is enabled implicitly by having MachineInstr::copyImplicitOps preserve
re

[X86] New and improved VZeroUpperInserter optimization.

- Adds support for inserting vzerouppers before tail-calls.
This is enabled implicitly by having MachineInstr::copyImplicitOps preserve
regmask operands, which allows VZeroUpperInserter to see where tail-calls use
vector registers.

- Fixes a bug that caused the previous version of this optimization to miss some
vzeroupper insertion points in loops. (Loops-with-vector-code that followed
loops-without-vector-code were mistakenly overlooked by the previous version).

- New algorithm never revisits instructions.

Fixes <rdar://problem/16228798>

llvm-svn: 204021

show more ...


# 2d9361e3 09-Mar-2014 Craig Topper <craig.topper@gmail.com>

[C++11] Add 'override' keyword to virtual methods that override their base class.

llvm-svn: 203378


# 52e4a0e1 05-Jan-2014 Elena Demikhovsky <elena.demikhovsky@intel.com>

AVX-512: Added more intrinsics for convert and min/max.
Removed vzeroupper from AVX-512 mode - our optimization gude does not recommend to insert vzeroupper at all.

llvm-svn: 198557


Revision tags: llvmorg-3.4.0, llvmorg-3.4.0-rc3
# 9a0e3f48 04-Dec-2013 Michael Liao <michael.liao@intel.com>

[X86] Check YMM31/ZMM31 as well

- No test case as there's no calling convention preserve YMM31/ZMM31 only

llvm-svn: 196391


# 14b02848 03-Dec-2013 Michael Liao <michael.liao@intel.com>

Enhance the fix of PR17631

- The fix to PR17631 fixes part of the cases where 'vzeroupper' should
not be issued before 'call' insn. There're other cases where helper
calls will be inserted not l

Enhance the fix of PR17631

- The fix to PR17631 fixes part of the cases where 'vzeroupper' should
not be issued before 'call' insn. There're other cases where helper
calls will be inserted not limited to epilog. These helper calls do
not follow the standard calling convention and won't clobber any YMM
registers. (So far, all call conventions will clobber any or part of
YMM registers.)
This patch enhances the previous fix to cover more cases 'vzerosupper' should
not be inserted by checking if that function call won't clobber any YMM
registers and skipping it if so.

llvm-svn: 196261

show more ...


Revision tags: llvmorg-3.4.0-rc2, llvmorg-3.4.0-rc1
# c7bf44d7 23-Oct-2013 Michael Liao <michael.liao@intel.com>

Fix PR17631

- Skip instructions added in prolog. For specific targets, prolog may
insert helper function calls (e.g. _chkstk will be called when
there're more than 4K bytes allocated on stack).

Fix PR17631

- Skip instructions added in prolog. For specific targets, prolog may
insert helper function calls (e.g. _chkstk will be called when
there're more than 4K bytes allocated on stack). However, these
helpers don't use/def YMM/XMM registers.

llvm-svn: 193261

show more ...


# 8cfb43f7 24-Jul-2013 Elena Demikhovsky <elena.demikhovsky@intel.com>

I'm starting to commit KNL backend. I'll push patches one-by-one. This patch includes support for the extended register set XMM16-31, YMM16-31, ZMM0-31.
The full ISA you can see here: http://software

I'm starting to commit KNL backend. I'll push patches one-by-one. This patch includes support for the extended register set XMM16-31, YMM16-31, ZMM0-31.
The full ISA you can see here: http://software.intel.com/en-us/intel-isa-extensions

llvm-svn: 187030

show more ...


Revision tags: llvmorg-3.3.1-rc1, llvmorg-3.3.0, llvmorg-3.3.0-rc3, llvmorg-3.3.0-rc2, llvmorg-3.3.0-rc1
# 9e0df7cb 13-Feb-2013 Elena Demikhovsky <elena.demikhovsky@intel.com>

Prevent insertion of "vzeroupper" before call that preserves YMM registers, since a caller uses preserved registers across the call.

llvm-svn: 175043


Revision tags: llvmorg-3.2.0, llvmorg-3.2.0-rc3, llvmorg-3.2.0-rc2, llvmorg-3.2.0-rc1
# a10c0980 17-Oct-2012 Jakob Stoklund Olesen <stoklund@2pi.dk>

Check for empty YMM use-def lists in X86VZeroUpper.

The previous MRI.isPhysRegUsed(YMM0) would also return true when the
function contains a call to a function that may clobber YMM0. That's
most of

Check for empty YMM use-def lists in X86VZeroUpper.

The previous MRI.isPhysRegUsed(YMM0) would also return true when the
function contains a call to a function that may clobber YMM0. That's
most of them.

Checking the use-def chains allows us to skip functions that don't
explicitly mention YMM registers.

llvm-svn: 166110

show more ...


123