[llvm-dev] Infinite loops with no side effects
Hal Finkel via llvm-dev
llvm-dev at lists.llvm.org
Fri Oct 27 16:53:44 PDT 2017
On 10/27/2017 03:12 PM, Reid Kleckner wrote:
> On Fri, Oct 27, 2017 at 1:08 PM, Hal Finkel <hfinkel at anl.gov
> <mailto:hfinkel at anl.gov>> wrote:
>
> On 10/27/2017 02:51 PM, Reid Kleckner wrote:
>
>> Personally, I don't like the side effect intrinsic.
>
> Understood. I also don't like the fact that it will clutter the IR
> in many cases.
>
>> It will pollute all the IR generated by non-C frontends. What
>> most of these frontends really want is just a switch to disable a
>> targeted set of optimizations.
>>
>> One thing I like about the function attribute idea is that it's
>> conservatively correct to discard it when doing cross-language
>> inlining. It just becomes something that C-family frontends need
>> to remember to add to enable their special-case language rules,
>> rather than something that non-C languages need to think about.
>> Similar to the 'access', builtin vs nonbuiltin discussion
>> happening in parallel, the attribute enables the optimization,
>> rather than inhibiting it.
>
> As I said below, a function attribute is insufficient. It needs to
> be something we can mark per loop. This is needed to correctly
> model C. The sideeffect intrinsic is the best proposal I've seen
> so far.
>
>
> Maybe we should do both? If the intrinsic is a special case, that
> seems fine. It's cheap.
Okay.
-Hal
--
Hal Finkel
Lead, Compiler Technology and Programming Languages
Leadership Computing Facility
Argonne National Laboratory
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20171027/a8da6103/attachment.html>
More information about the llvm-dev
mailing list