Page MenuHomePhabricator

RalfJung (Ralf)
User

Projects

User does not belong to any projects.

User Details

User Since
Feb 1 2019, 9:58 AM (89 w, 4 d)

Recent Activity

Sep 4 2020

RalfJung added a comment to D86233: [LangRef] Define mustprogress attribute.

Shouldn't it be "maynotprogress" (or "maybenoprogress" or so)? *Every* function *may* progress, but only those with this marker are also allowed to not "make progress".

The way to read it is:
Every function *mustmakeprogress* unless it has the *mayprogress* attribute.

So "may" is either they do or they don't, both are fine.
And, "must" means they have to or UB.

Sep 4 2020, 8:58 AM · Restricted Project
RalfJung added a comment to D86233: [LangRef] Define mustprogress attribute.

Shouldn't it be "maynotprogress" (or "maybenoprogress" or so)? *Every* function *may* progress, but only those with this marker are also allowed to not "make progress".

Sep 4 2020, 2:03 AM · Restricted Project
RalfJung added a comment to D85393: [IR] Adds mustprogress as a LLVM IR attribute.

Changed name from noprogress to mayprogress for clarity.

Sep 4 2020, 2:02 AM · Restricted Project

Aug 28 2020

RalfJung added a comment to D85393: [IR] Adds mustprogress as a LLVM IR attribute.

I don't look at it as added or removed, for me it is a boolean flag, with a default that requires progress. It is more like nobuiltin, noduplicate, nomerge, returns_twice, .... The difference is that I don't see this being deduced. It is just a description of the input semantics, not a property we derive from the code (to describe the code). Unclear if the view makes a difference, let me know what u think :)

Aug 28 2020, 12:14 AM · Restricted Project

Aug 27 2020

RalfJung added a comment to D85393: [IR] Adds mustprogress as a LLVM IR attribute.

It depends on how you look at it:
From the perspective of optimizations we can do, sure absence is the one that enables more.
From the perspective of source behavior, it just distinguishes between two alternatives, so both option w/ and w/o flag have the same information value.

Aug 27 2020, 12:58 AM · Restricted Project

Aug 20 2020

RalfJung added a comment to D86233: [LangRef] Define mustprogress attribute.

This attribute indicates that the function is guaranteed to not make progress

Aug 20 2020, 1:09 AM · Restricted Project

Aug 10 2020

RalfJung added a comment to D85393: [IR] Adds mustprogress as a LLVM IR attribute.

It isn't contradiction, but about whether noprogress brings useful information or not, though.

Aug 10 2020, 2:01 AM · Restricted Project

Aug 9 2020

RalfJung added a comment to D65718: [LangRef] Document forward-progress requirement.

No happens-before rule is needed for sequential programs. The compiled program must exhibit all observable events in the same order as the source program.

Aug 9 2020, 7:11 AM · Restricted Project
RalfJung added a comment to D65718: [LangRef] Document forward-progress requirement.

Yes, C++ makes infinite loops UB (and C, under some conditions). This PR is about making LLVM support languages like JavaScript or Rust that do not have such UB.

Aug 9 2020, 3:48 AM · Restricted Project
RalfJung added a comment to D65718: [LangRef] Document forward-progress requirement.

I don't know what this statement is based on.

Aug 9 2020, 3:31 AM · Restricted Project

Aug 8 2020

RalfJung added a comment to D65718: [LangRef] Document forward-progress requirement.

If there are no accesses to the variable, there are no calls of the function. Throwing away the loop is valid, analysis of whether it is finite is not required.

Aug 8 2020, 1:31 AM · Restricted Project

Aug 6 2020

RalfJung added a comment to D85393: [IR] Adds mustprogress as a LLVM IR attribute.

Either should do the trick after a while given that all optimizations need to preserve/handle attribute already, you cannot just drop them and so noprogress should be sufficient.

Aug 6 2020, 9:06 AM · Restricted Project
RalfJung added a comment to D85393: [IR] Adds mustprogress as a LLVM IR attribute.

I am going solely off the description here as I am not familiar with LLVM internals. Looking forward to the LangRef update. :)

Aug 6 2020, 1:47 AM · Restricted Project

Nov 27 2019

RalfJung added inline comments to D61652: [Attr] Introduce dereferenceable_globally.
Nov 27 2019, 9:59 AM · Restricted Project

Nov 21 2019

RalfJung added inline comments to D61652: [Attr] Introduce dereferenceable_globally.
Nov 21 2019, 12:56 AM · Restricted Project

Aug 15 2019

RalfJung added inline comments to D65718: [LangRef] Document forward-progress requirement.
Aug 15 2019, 11:18 PM · Restricted Project
RalfJung added a comment to D65718: [LangRef] Document forward-progress requirement.

A fence is not an atomic operation on its own in C++. See http://eel.is/c++draft/atomics.fences where it says "is a synchronization operation *if* [...]".

Aug 15 2019, 11:15 PM · Restricted Project

Aug 12 2019

RalfJung added inline comments to D65718: [LangRef] Document forward-progress requirement.
Aug 12 2019, 2:16 AM · Restricted Project
RalfJung added a comment to D65718: [LangRef] Document forward-progress requirement.

Does this need a side effect? Per the current definition, no. Per C++, yes.

Aug 12 2019, 2:13 AM · Restricted Project

Jul 23 2019

RalfJung added a comment to D65134: Clarify where the indirect UB due to write-write races comes from.

I cannot land commits myself, could you help with that?

Jul 23 2019, 9:25 AM · Restricted Project
RalfJung created D65134: Clarify where the indirect UB due to write-write races comes from.
Jul 23 2019, 2:16 AM · Restricted Project

Feb 26 2019

RalfJung added a comment to D57600: update docs of memcpy/memmove/memset re: alignment and len=0.

I fixed the typo.

Feb 26 2019, 3:28 AM · Restricted Project
RalfJung updated the diff for D57600: update docs of memcpy/memmove/memset re: alignment and len=0.

Fix typo.

Feb 26 2019, 3:28 AM · Restricted Project
RalfJung added a comment to D57600: update docs of memcpy/memmove/memset re: alignment and len=0.

Please make sure you have llvm-commits added as a subscriber when creating patches in the future

Feb 26 2019, 1:45 AM · Restricted Project

Feb 1 2019

RalfJung created D57600: update docs of memcpy/memmove/memset re: alignment and len=0.
Feb 1 2019, 10:08 AM · Restricted Project