[PATCH] D23210: [MachineSinking, RFC] Sink insert_subreg, subreg_to_reg, and reg_sequence instructions

Wei Mi via llvm-commits llvm-commits at lists.llvm.org
Thu Aug 11 10:01:28 PDT 2016


On Thu, Aug 11, 2016 at 9:27 AM,  <escha at apple.com> wrote:
>
>> On Aug 5, 2016, at 9:57 AM, Wei Mi via llvm-commits <llvm-commits at lists.llvm.org> wrote:
>>
>> wmi created this revision.
>> wmi added reviewers: qcolombet, MatzeB.
>> wmi added subscribers: llvm-commits, davidxl.
>> wmi set the repository for this revision to rL LLVM.
>>
>> In https://llvm.org/bugs/show_bug.cgi?id=28852, we saw a testcase for which machineSinking was blocked by subreg_to_reg so high cost operation cannot be moved to cold place.
>>
>> The limitation about "insert_subreg, subreg_to_reg, and reg_sequence" was to make them close to the source and make them easier to coalesce. Will the coalesce indicated here happen at register coalescing or register allocation? Is the limitation still valid considering it was added at 2010 and register coalescing and allocation has gone through a lot of changes?
>
> To note, I added this target hook specifically because we ran into the same problem — it was blocking sinking of legitimate things on our target. We’re probably the only ones using it, so if there’s no reason to keep it, we can probably just drop the hook entirely.
>
> —escha

escha, good to know that. My plan is to remove the check but keep the
hook for the moment. If luckily there is no performance problem
reported or the performance problems can be solved after analysis,
then we can drop the hook entirely. Is it ok?

Wei.


More information about the llvm-commits mailing list