[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:52:43 PDT 2011
On Wed, Apr 20, 2011 at 10:50 AM, Eli Friedman <eli.friedman at gmail.com> wrote:
> 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.
>
Oh, one more thing: this description unconditionally defines size_t
and friends to a 64-bit type; that isn't wrong, exactly, but probably
not what you want.
-Eli
More information about the cfe-commits
mailing list