This is the mail archive of the gcc@gcc.gnu.org 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: -funsafe-loop-optimizations




On Sat, 1 Jan 2005, Paul Brook wrote:

On Friday 31 December 2004 21:14, Zdenek Dvorak wrote:
Hello,

several times some people sounded opinion that in addition to improving
analyses in loop optimizer, we might also add a flag that would enable
the compiler to assume that the compiled code does not contain loops
behaving in "weird" way (loops whose control induction variables
overflows, infinite loops with nontrivial exit conditions).

I remember several people were against this possibility.  Therefore
I send the proposal for the patch implementing this flag first here
to the gcc list, to give the chance to discuss about it before I try
to test and submit it properly (or not).

Does this apply to all "loops" the compiler discovers, or just where explicit source language looping constructs are used. If it's the former we should IMHO document this as it's probably not obvious to many users, especially when combined with inlining, etc.

Also, is this a property could be annotated on a per-loop basis?

Probably, but we'd have to update a bunch of code to keep it up to date.


xlc tracks the status of the compilation flag on a per-cu basis:

compilation unit options:
    ...
    StrictIVs                 - Assume wrap-around may occur
    ...

and uses an expression flag to tell the simplifier what it can assume on a per-expression basis:

expression flags:
    ...
    NonModuloArithmetic  - Assume infinite precision integer arithmetic
    ...


(this flag is only used for telling the expression simplifier what it can assume, nothing else)


--Dan


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