[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