This is the mail archive of the gcc-patches@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: The nvptx port


On 11/14/2014 11:01 AM, Jakub Jelinek wrote:
On Fri, Nov 14, 2014 at 09:29:48AM +0100, Jakub Jelinek wrote:
I have some questions about nvptx:

Oh, and
5) I have noticed gcc doesn't generate the .uni suffixes anywhere,
    while llvm generates them; are those appropriate only when a function
    is guaranteed to be run unconditionally from the toplevel kernel,
    or even in spots in arbitrary functions which might not be run
    unconditionally by all threads in thread block, but all threads
    that encounter the particular function will run the specific spot
    unconditionally?  I mean, if we have arbitrary function:
void foo (void) { something; bar (); something; }
    then the call is unconditional in there, but there is no guarantee
    somebody will not do
void baz (int x) { if (x > 20) foo (); }
    and run foo only in a subset of the threads.

It's unclear to me what the .uni suffix even does on calls. Google finds this:

  http://divmap.wordpress.com/home/divopt/

which suggests that it says that the call's predicate will evaluate to the same value on all threads. So I think for an unconditional call instruction it's just meaningless.


Bernd


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