[cfe-commits] [PATCH] Add ptx32 and ptx64 target triples, as well as PTX builtins
Eli Friedman
eli.friedman at gmail.com
Wed Apr 20 10:50:09 PDT 2011
On Wed, Apr 20, 2011 at 10:14 AM, Justin Holewinski
<justin.holewinski at gmail.com> wrote:
> The attached patch adds target triples for the PTX back-end, and adds the
> currently implemented PTX intrinsics as builtin functions. I would like for
> someone familiar with the Clang targets/triples and builtins code to review
> this patch. I have been involved in the PTX back-end for several months
> now, but this is my first patch to Clang.
+ PTXTargetInfo(const std::string& triple) : TargetInfo(triple) {
+ TLSSupported = false;
+ IntWidth = IntAlign = 32;
+ LongWidth = LongLongWidth = LongAlign = LongLongAlign = 64;
+ }
You can skip setting IntWidth/IntAlign/LongLongWidth/LongLongAlign;
the defaults are correct.
+ class PTX32TargetInfo : public PTXTargetInfo {
+ public:
+ PTX32TargetInfo(const std::string& triple) : PTXTargetInfo(triple) {
+ PointerWidth = PointerAlign = 32;
+ DescriptionString
+ = "e-p:32:32-i64:32:32-f64:32:32-v128:32:128-v64:32:64-n32:64";
+ }
+ };
The target description string isn't using the same alignment for long
and for double as the clang TargetInfo. Also, the alignment for v64
and v128 looks wrong.
BUILTIN(__builtin_ptx_read_tid_x, "i", "nc")
The "c" means that the value returned by these builtins never changes;
that doesn't seem right.
Otherwise, looks fine.
-Eli
More information about the cfe-commits
mailing list