OSDN Git Service

[x86/SLH] Major refactoring of SLH implementaiton. There are two big
authorChandler Carruth <chandlerc@gmail.com>
Thu, 19 Jul 2018 11:13:58 +0000 (11:13 +0000)
committerChandler Carruth <chandlerc@gmail.com>
Thu, 19 Jul 2018 11:13:58 +0000 (11:13 +0000)
commitd13704d44f36e28c02ff6ca1e8849760fa020ead
tree958f5de9a4aeeeb958e553ea1d051c168970e387
parent3a2e78e840c0bd281fbce66f454b771e46e863f9
[x86/SLH] Major refactoring of SLH implementaiton. There are two big
changes that are intertwined here:

1) Extracting the tracing of predicate state through the CFG to its own
   function.
2) Creating a struct to manage the predicate state used throughout the
   pass.

Doing #1 necessitates and motivates the particular approach for #2 as
now the predicate management is spread across different functions
focused on different aspects of it. A number of simplifications then
fell out as a direct consequence.

I went with an Optional to make it more natural to construct the
MachineSSAUpdater object.

This is probably the single largest outstanding refactoring step I have.
Things get a bit more surgical from here. My current goal, beyond
generally making this maintainable long-term, is to implement several
improvements to how we do interprocedural tracking of predicate state.
But I don't want to do that until the predicate state management and
tracing is in reasonably clear state.

Differential Revision: https://reviews.llvm.org/D49427

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@337446 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/X86/X86SpeculativeLoadHardening.cpp