This is the mail archive of the mailing list for the GCC project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH]: Speed up SSA-CCP

On May 22, 2004, at 12:24 PM, Diego Novillo wrote:

On Sat, 2004-05-22 at 09:06, Daniel Berlin wrote:
This speeds up SSA-CCP by moving more things to VARYING in one step
instead of two.
Kenneth Zadeck said it was worth about 30-40% performance in their
SSA-CCP is already fast in our compiler, but it can't hurt to make it
faster (this patch can't ever slow it down, since it can only lessen
the number of iterations it takes to finish the algorithm, not increase

2004-05-22 Daniel Berlin <> Kenneth Zadeck <>

    * tree-ssa-ccp.c (varying_ssa_edges): New worklist.
    (add_var_to_ssa_edges_worklist): Add value argument.
    Update callers.
    Use new worklist.
    (tree_ssa_ccp): Use new worklist.

It looks good. Some questions before adding it:

     1. Please factor out the loop that goes through the edge lists, so
        that the main iteration loop in tree_ssa_ccp() calls
        process_edge_list (ssa_edges) and process_edge_list


2. Is Kenneth's copyright assignment already on file?

He doesn't need one (he didn't directly write any of this code, but he still deserves credit for it), but he would be covered by Apple's anyway.

     3. Could you add a small example that illustrates how the new list
        speeds up the demotion to VARYING?

4. Any timings worth mentioning?

On three test cases where CCP took ~3 seconds, it now takes 1.8, 2.3, and 1.7 seconds
I didn't bother timing incredibly large pieces of code :)

Thanks. Diego.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]