- Jun 05, 2012
-
-
Jakob Stoklund Olesen authored
Rematerialization is handled by LiveRangeEdit now. llvm-svn: 157974
-
Jakob Stoklund Olesen authored
llvm-svn: 157963
-
Jakob Stoklund Olesen authored
No functional change. llvm-svn: 157957
-
- May 29, 2012
-
-
Lang Hames authored
ranges for the instruction about to be bundled. This fixes a bug in an external project where an assertion was triggered due to spurious 'multiple defs' within the bundle. Patch by Ivan Llopard. Thanks Ivan! llvm-svn: 157632
-
- May 20, 2012
-
-
Jakob Stoklund Olesen authored
llvm-svn: 157145
-
- Apr 18, 2012
-
-
Pete Cooper authored
LiveIntervalUpdate validators weren't recorded after the calls to std::for_each. Turns out std::for_each doesn't update the variable passed in for the functor but instead copy constructs a new one. llvm-svn: 155041
-
- Mar 21, 2012
-
-
Andrew Trick authored
llvm-svn: 153162
-
Andrew Trick authored
llvm-svn: 153158
-
- Mar 04, 2012
-
-
Jakob Stoklund Olesen authored
The first def of a virtual register cannot also read the register. Assert on such bad machine code instead of trying to fix it. TwoAddressInstructionPass should never create code like that. llvm-svn: 152010
-
- Mar 01, 2012
-
-
Jakob Stoklund Olesen authored
This allows the function to be inlined, and makes it suitable for use in getInstructionIndex(). Also provide a const version. C++ is great for touch typing practice. llvm-svn: 151782
-
- Feb 21, 2012
-
-
Lang Hames authored
bundles. This method takes a bundle start and an MI being bundled, and makes the intervals for the MI's operands appear to start/end on the bundle start. Also fixes some minor cosmetic issues (whitespace, naming convention) in the HMEditor code. llvm-svn: 151099
-
Lang Hames authored
llvm-svn: 151006
-
- Feb 19, 2012
-
-
Benjamin Kramer authored
llvm-svn: 150921
-
Lang Hames authored
llvm-svn: 150915
-
Lang Hames authored
llvm-svn: 150914
-
Lang Hames authored
llvm-svn: 150912
-
Lang Hames authored
llvm-svn: 150910
-
Lang Hames authored
Defer sanity checks on live intervals until after all have been updated. Hold (LiveInterval, LiveRange) pairs to update, rather than vregs. llvm-svn: 150909
-
- Feb 18, 2012
-
-
Lang Hames authored
llvm-svn: 150851
-
- Feb 17, 2012
-
-
Matt Beaumont-Gay authored
llvm-svn: 150841
-
Lang Hames authored
llvm-svn: 150840
-
Lang Hames authored
any changes. Internally this adds a private inner class HMEditor, to LiveIntervals. HMEditor provides an API for updating live intervals when code is moved or bundled. llvm-svn: 150826
-
Lang Hames authored
llvm-svn: 150771
-
Lang Hames authored
llvm-svn: 150768
-
- Feb 16, 2012
-
-
Lang Hames authored
llvm-svn: 150630
-
- Feb 15, 2012
-
-
Lang Hames authored
llvm-svn: 150627
-
Lang Hames authored
llvm-svn: 150608
-
Lang Hames authored
llvm-svn: 150553
-
Lang Hames authored
llvm-svn: 150552
-
Jakob Stoklund Olesen authored
When a physreg is live in to a basic block, look for any instruction in the block that clobbers the physreg. The instruction doesn't have to properly redefine the register, any overlapping clobber is OK. This slightly changes live ranges when compiling with register masks. llvm-svn: 150528
-
Jakob Stoklund Olesen authored
The old DenseMap hashed order was very confusing. llvm-svn: 150527
-
Lang Hames authored
llvm-svn: 150525
-
- Feb 14, 2012
-
-
Lang Hames authored
only be live in to a block if it is the function entry point or a landing pad. llvm-svn: 150494
-
Lang Hames authored
llvm-svn: 150457
-
- Feb 13, 2012
-
-
Andrew Trick authored
llvm-svn: 150411
-
- Feb 10, 2012
-
-
Andrew Trick authored
Creates a configurable regalloc pipeline. Ensure specific llc options do what they say and nothing more: -reglloc=... has no effect other than selecting the allocator pass itself. This patch introduces a new umbrella flag, "-optimize-regalloc", to enable/disable the optimizing regalloc "superpass". This allows for example testing coalscing and scheduling under -O0 or vice-versa. When a CodeGen pass requires the MachineFunction to have a particular property, we need to explicitly define that property so it can be directly queried rather than naming a specific Pass. For example, to check for SSA, use MRI->isSSA, not addRequired<PHIElimination>. CodeGen transformation passes are never "required" as an analysis ProcessImplicitDefs does not require LiveVariables. We have a plan to massively simplify some of the early passes within the regalloc superpass. llvm-svn: 150226
-
Lang Hames authored
llvm-svn: 150224
-
Jakob Stoklund Olesen authored
When checking a local live range for interference, restrict the binary search to the single block. llvm-svn: 150220
-
Jakob Stoklund Olesen authored
Provide API to get a list of register mask slots and bits in a basic block. llvm-svn: 150219
-
Jakob Stoklund Olesen authored
No looping and binary searches necessary. Return a pointer to the containing block instead of just a bool. llvm-svn: 150218
-