[llvm] r206795 - Remove seemingly-unneeded artificial dependency
Hal Finkel
hfinkel at anl.gov
Mon Apr 21 14:45:46 PDT 2014
----- Original Message -----
> From: "Hal Finkel" <hfinkel at anl.gov>
> To: llvm-commits at cs.uiuc.edu
> Sent: Monday, April 21, 2014 4:30:25 PM
> Subject: [llvm] r206795 - Remove seemingly-unneeded artificial dependency
>
> Author: hfinkel
> Date: Mon Apr 21 16:30:25 2014
> New Revision: 206795
>
> URL: http://llvm.org/viewvc/llvm-project?rev=206795&view=rev
> Log:
> Remove seemingly-unneeded artificial dependency
>
> The rationale for this artificial dependency seems to have been lost
> to the
> ravages of time,
After writing this, I realize I was being a bit silly. The rationale is actually clearly stated, "Push store's up a bit to avoid them getting in between cmp and branches." The real issues are:
1. That is not exactly what the code does; nothing in the condition makes the extra dependencies specific to cmps
2. The benefit, even of the stated rationale, is not target independent. Furthermore, we now have better (target-specific) ways of encouraging macro fusion on x86, etc.
-Hal
> it is covered by no regression tests, and has no
> impact on
> test-suite performance numbers on either x86 or PPC.
>
> For the test suite, on both x86 and PPC, I ran the test suite 10
> times (both as
> a baseline and with this change), and found no
> statistically-significant
> changes. For PPC, I used a P7 box. For x86, I used an Intel Xeon
> E5430. Both
> with -O3 -mcpu=native.
>
> This was discussed on-list back in January, but I've not had a chance
> to run
> the performance tests until today.
>
> Modified:
> llvm/trunk/lib/CodeGen/ScheduleDAGInstrs.cpp
>
> Modified: llvm/trunk/lib/CodeGen/ScheduleDAGInstrs.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/ScheduleDAGInstrs.cpp?rev=206795&r1=206794&r2=206795&view=diff
> ==============================================================================
> --- llvm/trunk/lib/CodeGen/ScheduleDAGInstrs.cpp (original)
> +++ llvm/trunk/lib/CodeGen/ScheduleDAGInstrs.cpp Mon Apr 21 16:30:25
> 2014
> @@ -986,11 +986,6 @@ void ScheduleDAGInstrs::buildSchedGraph(
> // we have lost all RejectMemNodes below barrier.
> if (BarrierChain)
> BarrierChain->addPred(SDep(SU, SDep::Barrier));
> -
> - if (!ExitSU.isPred(SU))
> - // Push store's up a bit to avoid them getting in between
> cmp
> - // and branches.
> - ExitSU.addPred(SDep(SU, SDep::Artificial));
> } else if (MI->mayLoad()) {
> bool MayAlias = true;
> if (MI->isInvariantLoad(AA)) {
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>
--
Hal Finkel
Assistant Computational Scientist
Leadership Computing Facility
Argonne National Laboratory
More information about the llvm-commits
mailing list