New Iteration of subregister liveness patches

Matthias Braun matze at braunis.de
Tue Nov 18 19:40:40 PST 2014


Hi

attached is a new iteration of my subregister liveness tracking patches. I already submitted these for review last year:
	http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20131007/190279.html <http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20131007/190279.html>
	http://lists.cs.uiuc.edu/pipermail/llvmdev/2013-October/066207.html

I did not want to commit them last year because I wasn't able to completely fix the testsuite failures found in the X86/ARM backends. However as I started working on this topic again, I do not want to hold the patches back any longer and prepare people for what is coming.

The attached patchset has no fundamental changes to the patches proposed last year:
* Rebased/Adapted to llvm trunk
* Added and improved comments for the RegisterCoalescer changes
* Fix several edges cases in the RegisterCoalescer related to LiveIntervals which are partially undefined. With subregister liveness we must sometimes keep IMPLICIT_DEF instructions to not break the verifier, there was also a case where we also have to recompute the main liverange if any of the subregister liverange needed to be recomputed.
* Various comment improvements/cleanups

If you enable the subregister liveness tracking for X86, ARM, R600 the teststuite state is:
* X86 shows no regression
* ARM is down to 2 regressions after a set of followup patches I will present in my next mail
* R600 shows 1 regression
with subregister liveness tracking disabled no changes are visible.

Greetings
	Matthias
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20141118/7c575157/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-Let-tablegen-compute-maximum-lanemask-for-regs-regcl.patch
Type: application/octet-stream
Size: 5303 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20141118/7c575157/attachment.obj>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20141118/7c575157/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0002-Add-function-that-translates-subregister-lane-masks-.patch
Type: application/octet-stream
Size: 11679 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20141118/7c575157/attachment-0001.obj>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20141118/7c575157/attachment-0002.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0003-Add-const-version-of-LiveRange-advanceTo.patch
Type: application/octet-stream
Size: 1003 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20141118/7c575157/attachment-0002.obj>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20141118/7c575157/attachment-0003.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0004-Add-a-covers-operation-to-LiveRange.patch
Type: application/octet-stream
Size: 2314 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20141118/7c575157/attachment-0003.obj>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20141118/7c575157/attachment-0004.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0005-Add-support-to-track-liveness-of-subregisters-in-a-L.patch
Type: application/octet-stream
Size: 23925 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20141118/7c575157/attachment-0004.obj>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20141118/7c575157/attachment-0005.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0006-Compute-subregister-ranges-in-LiveIntervalAnalysis.patch
Type: application/octet-stream
Size: 21189 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20141118/7c575157/attachment-0005.obj>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20141118/7c575157/attachment-0006.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0007-Update-SubRanges-in-LiveIntervalAnalysis-shrinkToUse.patch
Type: application/octet-stream
Size: 6896 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20141118/7c575157/attachment-0006.obj>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20141118/7c575157/attachment-0007.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0008-Adapt-LiveIntervalAnalysis-handleMove-for-subregiste.patch
Type: application/octet-stream
Size: 4698 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20141118/7c575157/attachment-0007.obj>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20141118/7c575157/attachment-0008.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0009-Adapt-LiveRangeEdit-eliminateDeadDef-for-subregister.patch
Type: application/octet-stream
Size: 1175 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20141118/7c575157/attachment-0008.obj>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20141118/7c575157/attachment-0009.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0010-Adapt-LiveIntervalAnalysis-repairIntervalsInRange-to.patch
Type: application/octet-stream
Size: 8655 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20141118/7c575157/attachment-0009.obj>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20141118/7c575157/attachment-0010.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0011-Add-a-flag-to-enable-disable-subregister-liveness.patch
Type: application/octet-stream
Size: 4872 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20141118/7c575157/attachment-0010.obj>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20141118/7c575157/attachment-0011.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0012-Introduce-LiveQuery-accessor-for-dead-or-live-out-va.patch
Type: application/octet-stream
Size: 1041 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20141118/7c575157/attachment-0011.obj>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20141118/7c575157/attachment-0012.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0013-Add-subregister-aware-variants-of-LiveIntervalAnalys.patch
Type: application/octet-stream
Size: 6101 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20141118/7c575157/attachment-0012.obj>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20141118/7c575157/attachment-0013.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0014-Add-LiveInterval-removeEmptySubRanges.patch
Type: application/octet-stream
Size: 1743 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20141118/7c575157/attachment-0013.obj>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20141118/7c575157/attachment-0014.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0015-Preserve-subregister-liveranges-in-register-coalesce.patch
Type: application/octet-stream
Size: 45692 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20141118/7c575157/attachment-0014.obj>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20141118/7c575157/attachment-0015.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0016-amend-to-RegisterCoalescer.patch
Type: application/octet-stream
Size: 3901 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20141118/7c575157/attachment-0015.obj>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20141118/7c575157/attachment-0016.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0017-Tablegen-erate-lanemasks-for-register-units.patch
Type: application/octet-stream
Size: 13821 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20141118/7c575157/attachment-0016.obj>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20141118/7c575157/attachment-0017.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0018-LiveIntervalUnion-allow-specification-of-liverange-w.patch
Type: application/octet-stream
Size: 3290 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20141118/7c575157/attachment-0017.obj>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20141118/7c575157/attachment-0018.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0019-Respect-subregister-liveness-when-allocating-registe.patch
Type: application/octet-stream
Size: 6161 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20141118/7c575157/attachment-0018.obj>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20141118/7c575157/attachment-0019.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0020-Do-not-add-implicit-defs-uses-when-tracking-subregis.patch
Type: application/octet-stream
Size: 7334 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20141118/7c575157/attachment-0019.obj>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20141118/7c575157/attachment-0020.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0021-Add-MCSubRegIndexIterator.patch
Type: application/octet-stream
Size: 2092 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20141118/7c575157/attachment-0020.obj>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20141118/7c575157/attachment-0021.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0022-Better-Block-live-in-info-if-subregliveness-is-avail.patch
Type: application/octet-stream
Size: 2477 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20141118/7c575157/attachment-0021.obj>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20141118/7c575157/attachment-0022.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0023-MachineVerifier-Allow-LiveInterval-segments-to-end-a.patch
Type: application/octet-stream
Size: 2009 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20141118/7c575157/attachment-0022.obj>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20141118/7c575157/attachment-0023.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0024-MachineVerifier-allow-physreg-use-if-just-a-subreg-i.patch
Type: application/octet-stream
Size: 1549 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20141118/7c575157/attachment-0023.obj>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20141118/7c575157/attachment-0024.html>


More information about the llvm-commits mailing list