aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/CodeGen/LiveDebugValues.cpp
AgeCommit message (Collapse)AuthorFilesLines
2016-03-28Introduce MachineFunctionProperties and the AllVRegsAllocated propertyDerek Schuff1-0/+5
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-25Consider regmasks when computing register-based DBG_VALUE live rangesReid Kleckner1-7/+23
Now register parameters that aren't saved to the stack or CSRs are considered dead after the first call. Previously the debugger would show whatever was in the register. Fixes PR26589 Reviewers: aprantl Differential Revision: http://reviews.llvm.org/D17211 llvm-svn: 264429
2016-01-10Speed up LiveDebugValuesDaniel Berlin1-28/+52
Summary: Use proper dataflow ordering to speed convergence. This will converge the testcase on bug 26055 in 2 iterations. (data structures speedups to come to make even that faster) Reviewers: kcc, samsonov, echristo, dblaikie, tvvikram Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D16039 llvm-svn: 257292
2016-01-10Don't use random class variables across functionsDaniel Berlin1-29/+30
llvm-svn: 257271
2016-01-07[LiveDebugValues] Replace several lines of code with operator[].Alexey Samsonov1-16/+2
llvm-svn: 257114
2015-12-16Recommit LiveDebugValues pass after fixing a couple of minor issues.Vikram TV1-0/+405
llvm-svn: 255759
2015-12-09Revert "Implement a new pass - LiveDebugValues - to compute the set of live ↵Mehdi Amini1-402/+0
DEBUG_VALUEs at each basic block and insert them. Reviewed and accepted at: http://reviews.llvm.org/D11933" This reverts commit r255096. Break the bots: http://lab.llvm.org:8080/green/job/clang-stage1-cmake-RA-incremental_check/16378/ From: Mehdi Amini <mehdi.amini@apple.com> llvm-svn: 255101
2015-12-09Implement a new pass - LiveDebugValues - to compute the set of live ↵Vikram TV1-0/+402
DEBUG_VALUEs at each basic block and insert them. Reviewed and accepted at: http://reviews.llvm.org/D11933 llvm-svn: 255096