History log of /llvm-project/llvm/lib/CodeGen/TargetPassConfig.cpp (Results 301 – 307 of 307)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 1d396832 10-Jun-2016 Mehdi Amini <mehdi.amini@apple.com>

Interprocedural Register Allocation (IPRA): add a Transformation Pass

Adds a MachineFunctionPass that scans the body to find calls, and
update the register mask with the one saved by the
RegUsageInf

Interprocedural Register Allocation (IPRA): add a Transformation Pass

Adds a MachineFunctionPass that scans the body to find calls, and
update the register mask with the one saved by the
RegUsageInfoCollector analysis in PhysicalRegisterUsageInfo.

Patch by Vivek Pandya <vivekvpandya@gmail.com>

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

llvm-svn: 272414

show more ...


# bbacddfe 10-Jun-2016 Mehdi Amini <mehdi.amini@apple.com>

Interprocedural Register Allocation (IPRA) Analysis

Add an option to enable the analysis of MachineFunction register
usage to extract the list of clobbered registers.

When enabled, the CodeGen orde

Interprocedural Register Allocation (IPRA) Analysis

Add an option to enable the analysis of MachineFunction register
usage to extract the list of clobbered registers.

When enabled, the CodeGen order is changed to be bottom up on the Call
Graph.

The analysis is split in two parts, RegUsageInfoCollector is the
MachineFunction Pass that runs post-RA and collect the list of
clobbered registers to produce a register mask.

An immutable pass, RegisterUsageInfo, stores the RegMask produced by
RegUsageInfoCollector, and keep them available. A future tranformation
pass will use this information to update every call-sites after
instruction selection.

Patch by Vivek Pandya <vivekvpandya@gmail.com>

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

llvm-svn: 272403

show more ...


# 8023233a 09-Jun-2016 Matt Arsenault <Matthew.Arsenault@amd.com>

CodeGen: Allow verifier to run after MachineBlockPlacement

No tests break with this enabled.

llvm-svn: 272340


Revision tags: llvmorg-3.8.1, llvmorg-3.8.1-rc1
# f9acacaa 31-May-2016 Matthias Braun <matze@braunis.de>

CodeGen: Refactor renameDisconnectedComponents() as a pass

Refactor LiveIntervals::renameDisconnectedComponents() to be a pass.
Also change the name to "RenameIndependentSubregs":

- renameDisconnec

CodeGen: Refactor renameDisconnectedComponents() as a pass

Refactor LiveIntervals::renameDisconnectedComponents() to be a pass.
Also change the name to "RenameIndependentSubregs":

- renameDisconnectedComponents() worked on a MachineFunction at a time
so it is a natural candidate for a machine function pass.

- The algorithm is testable with a .mir test now.

- This also fixes a problem where the lazy renaming as part of the
MachineScheduler introduced IMPLICIT_DEF instructions after the number
of a nodes in a region were counted leading to a mismatch.

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

llvm-svn: 271345

show more ...


# 1aaf87e9 17-May-2016 Derek Schuff <dschuff@google.com>

Factor PrologEpilogInserter around spilling, frame finalization, and scavenging

PrologEpilogInserter has these 3 phases, which are related, but not
all of them are needed by all targets. This patch

Factor PrologEpilogInserter around spilling, frame finalization, and scavenging

PrologEpilogInserter has these 3 phases, which are related, but not
all of them are needed by all targets. This patch reorganizes PEI's
varous functions around those phases for more clear separation. It also
introduces a new TargetMachine hook, usesPhysRegsForPEI, which is true
for non-virtual targets. When it is true, all the phases operate as
before, and PEI requires the AllVRegsAllocated property on
MachineFunctions. Otherwise, CSR spilling and scavenging are skipped and
only prolog/epilog insertion/frame finalization is done.

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

llvm-svn: 269750

show more ...


# 0663b61e 10-May-2016 Matthias Braun <matze@braunis.de>

TargetPassConfig: Set PrintMachineCode even if addMachinePasses() does not run.

llvm-svn: 269013


# 31d19d43 10-May-2016 Matthias Braun <matze@braunis.de>

CodeGen: Move TargetPassConfig from Passes.h to an own header; NFC

Many files include Passes.h but only a fraction needs to know about the
TargetPassConfig class. Move it into an own header. Also re

CodeGen: Move TargetPassConfig from Passes.h to an own header; NFC

Many files include Passes.h but only a fraction needs to know about the
TargetPassConfig class. Move it into an own header. Also rename
Passes.cpp to TargetPassConfig.cpp while we are at it.

llvm-svn: 269011

show more ...


1...<<111213