Go to file
Derek Schuff ad154c837e Introduce MachineFunctionProperties and the AllVRegsAllocated property
MachineFunctionProperties represents a set of properties that a MachineFunction
can have at particular points in time. Existing examples of this idea are
MachineRegisterInfo::isSSA() and MachineRegisterInfo::tracksLiveness() which
will eventually be switched to use this mechanism.
This change introduces the AllVRegsAllocated property; i.e. the property that
all virtual registers have been allocated and there are no VReg operands
left.

With this mechanism, passes can declare that they require a particular property
to be set, or that they set or clear properties by implementing e.g.
MachineFunctionPass::getRequiredProperties(). The MachineFunctionPass base class
verifies that the requirements are met, and handles the setting and clearing
based on the delcarations. Passes can also directly query and update the current
properties of the MF if they want to have conditional behavior.

This change annotates the target-independent post-regalloc passes; future
changes will also annotate target-specific ones.

Reviewers: qcolombet, hfinkel

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

llvm-svn: 264593
2016-03-28 17:05:30 +00:00
clang Reduce size of DefinitionData from 120 to 96 bytes on Windows. 2016-03-28 14:55:24 +00:00
clang-tools-extra clang-tidy: Fix broken buildbot 2016-03-28 04:15:41 +00:00
compiler-rt Fix-up for OS X test failure after r264451 ("Add memset, memmove, and memcpy to the common interceptors") 2016-03-28 10:21:35 +00:00
debuginfo-tests New round of fixes for "Always compile debuginfo-tests for the host triple" 2014-10-18 23:47:59 +00:00
libclc math: Fix ilogb(double) return type 2016-02-24 00:52:15 +00:00
libcxx Implement is_always_lock_free 2016-03-25 15:48:21 +00:00
libcxxabi [libcxxabi] Disable cxa_thread_atexit_test if unavailable 2016-03-17 10:00:24 +00:00
libunwind [AArch64] Fix libunwind build when using GNU assembler 2016-02-11 21:22:57 +00:00
lld [LTO] Internalize symbols. 2016-03-28 15:44:21 +00:00
lldb When we import the definition for a Tagdecl, propagate its completeness too. 2016-03-26 00:37:55 +00:00
llgo [llgo] Increment "Debug Info Version" 2016-03-23 23:09:00 +00:00
llvm Introduce MachineFunctionProperties and the AllVRegsAllocated property 2016-03-28 17:05:30 +00:00
openmp Fixing the non-x86 build by removing dependence on kmp_cpuid_t 2016-03-27 13:24:09 +00:00
polly docs: Fix section header committed in r264575 2016-03-28 17:00:14 +00:00