[all-commits] [llvm/llvm-project] 224596: Fix missing error for use of 128-bit integer insid...

jyu2-git via All-commits all-commits at lists.llvm.org
Mon Dec 7 10:09:30 PST 2020


  Branch: refs/heads/maste
  Home:   https://github.com/llvm/llvm-project
  Commit: 224596c4fe02f741ca13a5dd7cecd8b4d2739034
      https://github.com/llvm/llvm-project/commit/224596c4fe02f741ca13a5dd7cecd8b4d2739034
  Author: Jennifer Yu <jennifer.yu at intel.com>
  Date:   2020-12-07 (Mon, 07 Dec 2020)

  Changed paths:
    M clang/lib/Basic/Targets/SPIR.h
    M clang/lib/Sema/Sema.cpp
    M clang/lib/Sema/SemaOverload.cpp
    M clang/lib/Sema/SemaType.cpp
    M clang/test/CodeGen/ext-int-cc.c
    A clang/test/SemaSYCL/int128.cpp

  Log Message:
  -----------
  Fix missing error for use of 128-bit integer inside SPIR64 device code.
Emit error for use of 128-bit integer inside device code had been
already implemented in https://reviews.llvm.org/D74387.  However,
the error is not emitted for SPIR64, because for SPIR64, hasInt128Type
return true.

hasInt128Type: is also used to control generation of certain 128-bit
predefined macros, initializer predefined 128-bit integer types and
build 128-bit ArithmeticTypes.  Except predefined macros, only the
device target is considered, since error only emit when 128-bit
integer is used inside device code, the host target (auxtarget) also
needs to be considered.

The change address:
1. (SPIR.h) Correct hasInt128Type() for SPIR targets.
2. Sema.cpp and SemaOverload.cpp: Add additional check to consider host
   target(auxtarget) when call to hasInt128Type.  So that __int128_t
   and __int128() are allowed to avoid error when they used outside
   device code.
3. SemaType.cpp: add check for SYCLIsDevice to delay the error message.
   The error will be emitted if the use of 128-bit integer in the device
   code.

   Reviewed By: Johannes Doerfert and Aaron Ballman

   Differential Revision: https://reviews.llvm.org/D92439




More information about the All-commits mailing list