> On Aug 9, 2016, at 10:46 AM, Erik Eckstein via swift-evolution 
> <swift-evolution@swift.org> wrote:
> 
>> 
>> On Aug 9, 2016, at 10:19 AM, Wallacy via swift-evolution 
>> <swift-evolution@swift.org <mailto:swift-evolution@swift.org>> wrote:
>> 
>> I believe the -O is already able to loop unroll
> 
> correct
> 
>> , but now C-Style loop is gone, and maybe will be more "difficult" to 
>> compiler make this optimization, except of course using range literals.
>> 
>> Em ter, 9 de ago de 2016 às 13:10, Muse M via swift-evolution 
>> <swift-evolution@swift.org <mailto:swift-evolution@swift.org>> escreveu:
>> -Oloop
>> Correction: it should be similar to GCC -funroll-loops
>> On other option if we have 1,000,000's loops or array, it's bad for one core 
>> to handle 100% of the calculations and other cores are idle, the idea could 
>> be optimize loops to share/split workload across all available CPU cores. 
>> 
>> -Ofunction
>> Is a dummy example for other example.
>> 
>> On Tue, Aug 9, 2016 at 11:21 PM, Félix Cloutier <felix...@yahoo.ca 
>> <mailto:felix...@yahoo.ca>> wrote:
>> My understanding is that -Ounchecked removes integer overflow checks and 
>> array bound checks.
>> 
>> What type of optimizations would -Oloop and -Ofunction do?
>> 
>> Félix
>> 
>>> Le 7 août 2016 à 19:27:56, Muse M via swift-evolution 
>>> <swift-evolution@swift.org <mailto:swift-evolution@swift.org>> a écrit :
>>> 
>>> I'm not sure if this is the right channel to discuss on optimization switch
>>> 
>>> We are aware the 3 options:
>>> -O
>>> -Ofast
>>> -Ounchecked
> 
> We have -O and -Ounchecked.
> -Ofast is obsolete.
> 
> 
>>> 
>>> As we can see, we rarely use -Ounchecked for safety reason and there aren't 
>>> much info on what are the tradeoff. if there are performance reason that 
>>> will need to improve loop or maths optimization or allow developers to 
>>> fine-tuning in various area, we could add more options to compiler.
>>> 
>>> -OLoop (Optimize loop with safety)
>>> -OFunc (Optimize function calls)
>>> and so on.
>>> 
> 
> I think you are asking for a way to fine tune optimizations for a specific 
> purpose.
> Fine-tuning optimizations is mostly intended for small parts of the code, 
> like a function or even a loop.
> But optimization switches apply to the whole module (assuming 
> whole-module-optimization). So an optimization switch is not really a good 
> tool for fine tuning.
> 
> In general I believe there must be a good justification for adding an 
> optimization switch/mode. E.g. it must be well understandable what it does 
> and what's the difference to existing optimization modes.

Right.  Global optimization switches are generally a bad move; it's almost 
always better to have something more locally-scoped, like perhaps an 
OpenMP-like annotation on a loop encouraging it to be unrolled or parallelized.

John.

> 
>>> 
>>> 
>>> _______________________________________________
>>> swift-evolution mailing list
>>> swift-evolution@swift.org <mailto:swift-evolution@swift.org>
>>> https://lists.swift.org/mailman/listinfo/swift-evolution 
>>> <https://lists.swift.org/mailman/listinfo/swift-evolution>
>> 
>> 
>> _______________________________________________
>> swift-evolution mailing list
>> swift-evolution@swift.org <mailto:swift-evolution@swift.org>
>> https://lists.swift.org/mailman/listinfo/swift-evolution 
>> <https://lists.swift.org/mailman/listinfo/swift-evolution>
>> _______________________________________________
>> swift-evolution mailing list
>> swift-evolution@swift.org <mailto:swift-evolution@swift.org>
>> https://lists.swift.org/mailman/listinfo/swift-evolution
> 
> _______________________________________________
> swift-evolution mailing list
> swift-evolution@swift.org <mailto:swift-evolution@swift.org>
> https://lists.swift.org/mailman/listinfo/swift-evolution 
> <https://lists.swift.org/mailman/listinfo/swift-evolution>
_______________________________________________
swift-evolution mailing list
swift-evolution@swift.org
https://lists.swift.org/mailman/listinfo/swift-evolution

Reply via email to