<html>
<head>
<meta content="text/html; charset=ISO-8859-1"
http-equiv="Content-Type">
</head>
<body text="#000000" bgcolor="#FFFFFF">
<div class="moz-cite-prefix">On 01/14/2014 04:20 PM, Owen Anderson
wrote:<br>
</div>
<blockquote cite="mid:7636e2df-961b-46d5-86d9-ae099098d91d@me.com"
type="cite">
<meta http-equiv="Content-Type" content="text/html;
charset=ISO-8859-1">
<div>I don't know Matt's intent here, but some GPUs support
accessing local memory via a memory mapping inside global
memory, in addition to via direct access. This has the nice
benefit of still allowing direct access (which might be more
efficient) while simplifying the programming model by allowing
precompiled functions with pointer parameters not to have to be
specialized for each address space.<br>
<br>
--Owen<br>
</div>
</blockquote>
This is about what I was thinking. Newer GPUs have a flat address
space available, so either a pointer with the correct address space
or a generic pointer could be used to access an object.<br>
<br>
<blockquote cite="mid:7636e2df-961b-46d5-86d9-ae099098d91d@me.com"
type="cite">
<div><br>
On Jan 14, 2014, at 04:15 PM, Rafael Espíndola
<a class="moz-txt-link-rfc2396E" href="mailto:rafael.espindola@gmail.com"><rafael.espindola@gmail.com></a> wrote:<br>
<br>
</div>
<div>
<blockquote type="cite">
<div class="msg-quote">
<div class="_stretch">Sorry I missed this before.<br>
<br>
Why do you need this? Aliases are just another name for a
given<br>
position, so it seems strange to have the same position
being in two<br>
address spaces.<br>
<br>
How do you see this interacting with the proposed solution
for<br>
<a moz-do-not-send="true"
href="http://llvm.org/bugs/show_bug.cgi?id=10367"
data-mce-href="http://llvm.org/bugs/show_bug.cgi?id=10367">http://llvm.org/bugs/show_bug.cgi?id=10367</a>?<br>
<br>
On 2 January 2014 12:55, Matt Arsenault <<a
moz-do-not-send="true"
href="mailto:Matthew.Arsenault@amd.com"
data-mce-href="mailto:Matthew.Arsenault@amd.com">Matthew.Arsenault@amd.com</a>>
wrote:<br>
<blockquote class="quoted-plain-text" type="cite">Author:
arsenm</blockquote>
<blockquote class="quoted-plain-text" type="cite">Date:
Thu Jan 2 14:55:01 2014</blockquote>
<blockquote class="quoted-plain-text" type="cite">New
Revision: 198349</blockquote>
<blockquote class="quoted-plain-text" type="cite">URL: <a
moz-do-not-send="true"
href="http://llvm.org/viewvc/llvm-project?rev=198349&view=rev"
data-mce-href="http://llvm.org/viewvc/llvm-project?rev=198349&view=rev">http://llvm.org/viewvc/llvm-project?rev=198349&view=rev</a></blockquote>
<blockquote class="quoted-plain-text" type="cite">Log:</blockquote>
<blockquote class="quoted-plain-text" type="cite">Allow
addrspacecast in global aliases</blockquote>
<blockquote class="quoted-plain-text" type="cite">Added:</blockquote>
<blockquote class="quoted-plain-text" type="cite">llvm/trunk/test/Assembler/addrspacecast-alias.ll</blockquote>
<blockquote class="quoted-plain-text" type="cite">Modified:</blockquote>
<blockquote class="quoted-plain-text" type="cite">llvm/trunk/lib/IR/Globals.cpp</blockquote>
<blockquote class="quoted-plain-text" type="cite">llvm/trunk/lib/IR/Verifier.cpp</blockquote>
<blockquote class="quoted-plain-text" type="cite">Modified:
llvm/trunk/lib/IR/Globals.cpp</blockquote>
<blockquote class="quoted-plain-text" type="cite">URL: <a
moz-do-not-send="true"
href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/IR/Globals.cpp?rev=198349&r1=198348&r2=198349&view=diff"
data-mce-href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/IR/Globals.cpp?rev=198349&r1=198348&r2=198349&view=diff">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/IR/Globals.cpp?rev=198349&r1=198348&r2=198349&view=diff</a></blockquote>
<blockquote class="quoted-plain-text" type="cite">==============================================================================</blockquote>
<blockquote class="quoted-plain-text" type="cite">---
llvm/trunk/lib/IR/Globals.cpp (original)</blockquote>
<blockquote class="quoted-plain-text" type="cite">+++
llvm/trunk/lib/IR/Globals.cpp Thu Jan 2 14:55:01 2014</blockquote>
<blockquote class="quoted-plain-text" type="cite">@@
-237,7 +237,8 @@ GlobalValue
*GlobalAlias::getAliasedGlob</blockquote>
<blockquote class="quoted-plain-text" type="cite">return
GV;</blockquote>
<blockquote class="quoted-plain-text" type="cite">ConstantExpr
*CE = cast<ConstantExpr>(C);</blockquote>
<blockquote class="quoted-plain-text" type="cite">-
assert((CE->getOpcode() == Instruction::BitCast ||</blockquote>
<blockquote class="quoted-plain-text" type="cite">+
assert((CE->getOpcode() == Instruction::BitCast ||</blockquote>
<blockquote class="quoted-plain-text" type="cite">+
CE->getOpcode() == Instruction::AddrSpaceCast ||</blockquote>
<blockquote class="quoted-plain-text" type="cite">CE->getOpcode()
== Instruction::GetElementPtr) &&</blockquote>
<blockquote class="quoted-plain-text" type="cite">"Unsupported
aliasee");</blockquote>
<blockquote class="quoted-plain-text" type="cite">Modified:
llvm/trunk/lib/IR/Verifier.cpp</blockquote>
<blockquote class="quoted-plain-text" type="cite">URL: <a
moz-do-not-send="true"
href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/IR/Verifier.cpp?rev=198349&r1=198348&r2=198349&view=diff"
data-mce-href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/IR/Verifier.cpp?rev=198349&r1=198348&r2=198349&view=diff">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/IR/Verifier.cpp?rev=198349&r1=198348&r2=198349&view=diff</a></blockquote>
<blockquote class="quoted-plain-text" type="cite">==============================================================================</blockquote>
<blockquote class="quoted-plain-text" type="cite">---
llvm/trunk/lib/IR/Verifier.cpp (original)</blockquote>
<blockquote class="quoted-plain-text" type="cite">+++
llvm/trunk/lib/IR/Verifier.cpp Thu Jan 2 14:55:01 2014</blockquote>
<blockquote class="quoted-plain-text" type="cite">@@
-550,9 +550,11 @@ void
Verifier::visitGlobalAlias(GlobalAl</blockquote>
<blockquote class="quoted-plain-text" type="cite">ConstantExpr
*CE = dyn_cast<ConstantExpr>(Aliasee);</blockquote>
<blockquote class="quoted-plain-text" type="cite">Assert1(CE
&&</blockquote>
<blockquote class="quoted-plain-text" type="cite">(CE->getOpcode()
== Instruction::BitCast ||</blockquote>
<blockquote class="quoted-plain-text" type="cite">+
CE->getOpcode() == Instruction::AddrSpaceCast ||</blockquote>
<blockquote class="quoted-plain-text" type="cite">CE->getOpcode()
== Instruction::GetElementPtr) &&</blockquote>
<blockquote class="quoted-plain-text" type="cite">isa<GlobalValue>(CE->getOperand(0)),</blockquote>
<blockquote class="quoted-plain-text" type="cite">-
"Aliasee should be either GlobalValue or bitcast of
GlobalValue",</blockquote>
<blockquote class="quoted-plain-text" type="cite">+
"Aliasee should be either GlobalValue, bitcast or "</blockquote>
<blockquote class="quoted-plain-text" type="cite">+
"addrspacecast of GlobalValue",</blockquote>
<blockquote class="quoted-plain-text" type="cite">&GA);</blockquote>
<blockquote class="quoted-plain-text" type="cite">if
(CE->getOpcode() == Instruction::BitCast) {</blockquote>
<blockquote class="quoted-plain-text" type="cite">Added:
llvm/trunk/test/Assembler/addrspacecast-alias.ll</blockquote>
<blockquote class="quoted-plain-text" type="cite">URL: <a
moz-do-not-send="true"
href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Assembler/addrspacecast-alias.ll?rev=198349&view=auto"
data-mce-href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Assembler/addrspacecast-alias.ll?rev=198349&view=auto">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Assembler/addrspacecast-alias.ll?rev=198349&view=auto</a></blockquote>
<blockquote class="quoted-plain-text" type="cite">==============================================================================</blockquote>
<blockquote class="quoted-plain-text" type="cite">---
llvm/trunk/test/Assembler/addrspacecast-alias.ll (added)</blockquote>
<blockquote class="quoted-plain-text" type="cite">+++
llvm/trunk/test/Assembler/addrspacecast-alias.ll Thu Jan
2 14:55:01 2014</blockquote>
<blockquote class="quoted-plain-text" type="cite">@@ -0,0
+1,6 @@</blockquote>
<blockquote class="quoted-plain-text" type="cite">+; RUN:
llvm-as -disable-output %s</blockquote>
<blockquote class="quoted-plain-text" type="cite">+</blockquote>
<blockquote class="quoted-plain-text" type="cite">+; Test
that global aliases are allowed to be constant
addrspacecast</blockquote>
<blockquote class="quoted-plain-text" type="cite">+</blockquote>
<blockquote class="quoted-plain-text" type="cite">+@i =
internal addrspace(1) global i8 42</blockquote>
<blockquote class="quoted-plain-text" type="cite">+@ia =
alias internal i8 addrspace(2)* addrspacecast (i8
addrspace(1)* @i to i8 addrspace(2)*)</blockquote>
<blockquote class="quoted-plain-text" type="cite">_______________________________________________</blockquote>
<blockquote class="quoted-plain-text" type="cite">llvm-commits
mailing list</blockquote>
<blockquote class="quoted-plain-text" type="cite"><a
moz-do-not-send="true"
href="mailto:llvm-commits@cs.uiuc.edu"
data-mce-href="mailto:llvm-commits@cs.uiuc.edu">llvm-commits@cs.uiuc.edu</a></blockquote>
<blockquote class="quoted-plain-text" type="cite"><a
moz-do-not-send="true"
href="http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits"
data-mce-href="http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits">http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits</a></blockquote>
_______________________________________________<br>
llvm-commits mailing list<br>
<a moz-do-not-send="true"
href="mailto:llvm-commits@cs.uiuc.edu"
data-mce-href="mailto:llvm-commits@cs.uiuc.edu">llvm-commits@cs.uiuc.edu</a><br>
<a moz-do-not-send="true"
href="http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits"
data-mce-href="http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits">http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits</a><br>
</div>
</div>
</blockquote>
</div>
</blockquote>
<br>
</body>
</html>