Skip to content

Commit

Permalink
[HLSL] Infer language from file extension
Browse files Browse the repository at this point in the history
This allows the language mode for HLSL to be inferred from the file
extension.
  • Loading branch information
llvm-beanz committed Aug 24, 2022
1 parent 9616905 commit 887bafb
Show file tree
Hide file tree
Showing 3 changed files with 49 additions and 48 deletions.
1 change: 1 addition & 0 deletions clang/lib/Frontend/FrontendOptions.cpp
Expand Up @@ -33,5 +33,6 @@ InputKind FrontendOptions::getInputKindForExtension(StringRef Extension) {
.Cases("cu", "cuh", Language::CUDA)
.Case("hip", Language::HIP)
.Cases("ll", "bc", Language::LLVM_IR)
.Case("hlsl", Language::HLSL)
.Default(Language::Unknown);
}
48 changes: 0 additions & 48 deletions clang/test/Preprocessor/predefined-macros-hlsl.c

This file was deleted.

48 changes: 48 additions & 0 deletions clang/test/Preprocessor/predefined-macros-hlsl.hlsl
@@ -0,0 +1,48 @@
// RUN: %clang_cc1 %s -E -dM -o - -triple dxil-pc-shadermodel6.0-amplification | FileCheck -match-full-lines %s --check-prefixes=CHECK,AMPLIFICATION
// RUN: %clang_cc1 %s -E -dM -o - -triple dxil-pc-shadermodel6.0-compute | FileCheck -match-full-lines %s --check-prefixes=CHECK,COMPUTE
// RUN: %clang_cc1 %s -E -dM -o - -triple dxil-pc-shadermodel6.0-domain | FileCheck -match-full-lines %s --check-prefixes=CHECK,DOMAIN
// RUN: %clang_cc1 %s -E -dM -o - -triple dxil-pc-shadermodel6.0-geometry | FileCheck -match-full-lines %s --check-prefixes=CHECK,GEOMETRY
// RUN: %clang_cc1 %s -E -dM -o - -triple dxil-pc-shadermodel6.0-hull | FileCheck -match-full-lines %s --check-prefixes=CHECK,HULL
// RUN: %clang_cc1 %s -E -dM -o - -triple dxil-pc-shadermodel6.0-library | FileCheck -match-full-lines %s --check-prefixes=CHECK,LIBRARY
// RUN: %clang_cc1 %s -E -dM -o - -triple dxil-pc-shadermodel6.0-mesh | FileCheck -match-full-lines %s --check-prefixes=CHECK,MESH
// RUN: %clang_cc1 %s -E -dM -o - -triple dxil-pc-shadermodel6.0-pixel | FileCheck -match-full-lines %s --check-prefixes=CHECK,PIXEL
// RUN: %clang_cc1 %s -E -dM -o - -triple dxil-pc-shadermodel6.0-vertex | FileCheck -match-full-lines %s --check-prefixes=CHECK,VERTEX

// CHECK: #define __HLSL_VERSION 2021
// CHECK: #define __SHADER_STAGE_AMPLIFICATION 14
// CHECK: #define __SHADER_STAGE_COMPUTE 5
// CHECK: #define __SHADER_STAGE_DOMAIN 4
// CHECK: #define __SHADER_STAGE_GEOMETRY 2
// CHECK: #define __SHADER_STAGE_HULL 3
// CHECK: #define __SHADER_STAGE_LIBRARY 6
// CHECK: #define __SHADER_STAGE_MESH 13
// CHECK: #define __SHADER_STAGE_PIXEL 0
// CHECK: #define __SHADER_STAGE_VERTEX 1

// AMPLIFICATION: #define __SHADER_TARGET_STAGE 14
// COMPUTE: #define __SHADER_TARGET_STAGE 5
// DOMAIN: #define __SHADER_TARGET_STAGE 4
// GEOMETRY: #define __SHADER_TARGET_STAGE 2
// HULL: #define __SHADER_TARGET_STAGE 3
// LIBRARY: #define __SHADER_TARGET_STAGE 6
// MESH: #define __SHADER_TARGET_STAGE 13
// PIXEL: #define __SHADER_TARGET_STAGE 0
// VERTEX: #define __SHADER_TARGET_STAGE 1

// RUN: %clang_cc1 %s -E -dM -o - -std=hlsl2015 | FileCheck -match-full-lines %s --check-prefixes=STD2015
// STD2015: #define __HLSL_VERSION 2015

// RUN: %clang_cc1 %s -E -dM -o - -std=hlsl2016 | FileCheck -match-full-lines %s --check-prefixes=STD2016
// STD2016: #define __HLSL_VERSION 2016

// RUN: %clang_cc1 %s -E -dM -o - -std=hlsl2017 | FileCheck -match-full-lines %s --check-prefixes=STD2017
// STD2017: #define __HLSL_VERSION 2017

// RUN: %clang_cc1 %s -E -dM -o - -std=hlsl2018 | FileCheck -match-full-lines %s --check-prefixes=STD2018
// STD2018: #define __HLSL_VERSION 2018

// RUN: %clang_cc1 %s -E -dM -o - -std=hlsl2021 | FileCheck -match-full-lines %s --check-prefixes=STD2021
// STD2021: #define __HLSL_VERSION 2021

// RUN: %clang_cc1 %s -E -dM -o - -std=hlsl202x | FileCheck -match-full-lines %s --check-prefixes=STD202x
// STD202x: #define __HLSL_VERSION 2029

0 comments on commit 887bafb

Please sign in to comment.