[llvm-commits] Please review: /llvm/trunk: include/llvm/CodeGen/DFAPacketizer.h lib/CodeGen/DFAPacketizer.cpp
Andrew Trick
atrick at apple.com
Tue Apr 24 13:49:57 PDT 2012
On Apr 24, 2012, at 11:43 AM, Sirish Pande <spande at codeaurora.org> wrote:
>
> I have attached Target Independent fix required for Hexagon VLIW packetizer.
>
> Like Andrew suggested, it does not have any warnings, make check-all passes all test cases for *all* targets.
>
> I have also incorporated Andrew's suggestions like moving exitRegion after packetization, using finishBlock and using map mi to su functionality.
>
> Please review. And, if there are any questions or comments, please let me know.
Thanks for copying me.
I don't understand why you need to call initSUnits. That's supposed to be a helper for buildSchedGraph. Any reason you can't use the MISUnits map that it creates?
If you can just remove that call and everything works, then go ahead and commit.
-Andy
>
> Here's the result of make check-all:
>
> -- Testing: 10489 tests, 8 threads --
> Testing: 0 .. 10.. 20.. 30.. 40.. 50.. 60.. 70.. 80.. 90..
> Testing Time: 36.53s
> Expected Passes : 10400
> Expected Failures : 76
> Unsupported Tests : 13
>
>
> Sirish
>
>> This target-independent code looks ok to commit. (I haven't looked at your target-specific patches yet.)
>>
>> As usual, under the following conditions
>> - no build warnings
>> - try to avoid significant increase in build times
>> - make check-all passes when configured for *all* targets
>> (this should apply to everyone committing target sensitive code, not just you!)
>> - Address buildbot failures that occured last time
>>
>> Chandler mentioned that some bots showed failures, so please look into those and don't commit until you think you've fixed them.
>>
>> A couple comments...
>>
>> + VLIWScheduler->exitRegion();
>>
>> I'm not sure why you would do this *before* packetizing. It's ok if it works, just a little misleading. You should probably add a call to VLIWScheduler->finishBlock() somewhere.
>>
>> + // Generate MI -> SU map.
>> + //std::map <MachineInstr*, SUnit*> MIToSUnit;
>> + MIToSUnit.clear();
>> + for (unsigned i = 0, e = VLIWScheduler->SUnits.size(); i != e; ++i) {
>> + SUnit *SU = &VLIWScheduler->SUnits[i];
>> + MIToSUnit[SU->getInstr()] = SU;
>> + }
>>
>> I added ScheduleDAGInstrs::MISUnitMap so you wouldn't need your own. I haven't tested it with a PostRA scheduler, but would like to know if it doesn't work.
>>
>> Thanks!
>>
>> -Andy
>>
>
>
> --
> Qualcomm Innovation Center, Inc is a member of Code Aurora Forum
>
> <HexagonPacketizerTargetIndependentFix.patch>
More information about the llvm-commits
mailing list