[PATCH] D126719: [clang-cl] Add support for /kernel

2022-06-07 Thread Stephen Long via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes. Closed by commit rGe3a6784ac967: [clang-cl] Add support for /kernel (authored by pzheng, committed by steplong). Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D126719/new/ http

[PATCH] D126719: [clang-cl] Add support for /kernel

2022-06-06 Thread Stephen Long via Phabricator via cfe-commits
steplong updated this revision to Diff 434459. steplong added a comment. - Clang-formatted patch Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D126719/new/ https://reviews.llvm.org/D126719 Files: clang/include/clang/Basic/LangOptions.def clang/

[PATCH] D126719: [clang-cl] Add support for /kernel

2022-06-03 Thread Stephen Long via Phabricator via cfe-commits
steplong updated this revision to Diff 434122. steplong added a comment. - Whoops missed a "/" in the test Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D126719/new/ https://reviews.llvm.org/D126719 Files: clang/include/clang/Basic/LangOptions.de

[PATCH] D126719: [clang-cl] Add support for /kernel

2022-06-03 Thread Stephen Long via Phabricator via cfe-commits
steplong updated this revision to Diff 434107. steplong added a comment. - Change to SupportedArches.insert() - Add logic that errors if /kernel and /GR - Add test for /kernel and /EHsc (silently override /EHsc. Only errors when trying to use exceptions in src code) and /kernel and /GR (fails wit

[PATCH] D126719: [clang-cl] Add support for /kernel

2022-06-03 Thread Nico Weber via Phabricator via cfe-commits
thakis accepted this revision. thakis added a comment. This revision is now accepted and ready to land. Looking pretty good! Comment at: clang/lib/Driver/ToolChains/Clang.cpp:7620 + std::vector Arches = {"IA32"}; + SupportedArches.insert(Arches.begin(), Arches.end()

[PATCH] D126719: [clang-cl] Add support for /kernel

2022-06-01 Thread Stephen Long via Phabricator via cfe-commits
steplong updated this revision to Diff 433502. steplong added a comment. - Change UnsupportedArches to SupportedArches Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D126719/new/ https://reviews.llvm.org/D126719 Files: clang/include/clang/Basic/La

[PATCH] D126719: [clang-cl] Add support for /kernel

2022-06-01 Thread Nico Weber via Phabricator via cfe-commits
thakis added inline comments. Comment at: clang/lib/Driver/ToolChains/Clang.cpp:7620 + else if (Arch == llvm::Triple::x86_64) + UnsupportedArches = {"AVX", "AVX2", "AVX512"}; + Making this list opt-in instead of opt-out (ie "SupportedArchs") seems a bit

[PATCH] D126719: [clang-cl] Add support for /kernel

2022-06-01 Thread Stephen Long via Phabricator via cfe-commits
steplong added a comment. In D126719#3548469 , @thakis wrote: > It also says `/kernel` is passed on to the linker. Do you know how the linker distinguishes objects created by /kernel vs non-/kernel? At the moment, we are just using MSVC's linker to link

[PATCH] D126719: [clang-cl] Add support for /kernel

2022-06-01 Thread Stephen Long via Phabricator via cfe-commits
steplong updated this revision to Diff 433389. steplong added a comment. Herald added a subscriber: ormris. - Reject /kernel and /arch combinations for x64 and x86 Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D126719/new/ https://reviews.llvm.org/D

[PATCH] D126719: [clang-cl] Add support for /kernel

2022-05-31 Thread Stephen Long via Phabricator via cfe-commits
steplong added a comment. In D126719#3548469 , @thakis wrote: > What does cl do if both `/kernel` and (eg) `/EHsc` is passed (try both > orders)? Same question for `/kernel /GR`. From my experiments, cl doesn't complain and happily compiles the code if

[PATCH] D126719: [clang-cl] Add support for /kernel

2022-05-31 Thread Nico Weber via Phabricator via cfe-commits
thakis added a comment. https://docs.microsoft.com/en-us/cpp/build/reference/kernel-create-kernel-mode-binary?view=msvc-170 says we should err when `/kernel` is used with various flags (e.g. most `/arch:`) flags. Want to add that too? It also says `/kernel` is passed on to the linker. What doe

[PATCH] D126719: [clang-cl] Add support for /kernel

2022-05-31 Thread Stephen Long via Phabricator via cfe-commits
steplong updated this revision to Diff 433185. steplong added a comment. - Test that exceptions aren't enabled with /kernel Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D126719/new/ https://reviews.llvm.org/D126719 Files: clang/include/clang/Bas

[PATCH] D126719: [clang-cl] Add support for /kernel

2022-05-31 Thread Stephen Long via Phabricator via cfe-commits
steplong created this revision. Herald added a project: All. steplong requested review of this revision. Herald added subscribers: cfe-commits, MaskRay. Herald added a project: clang. MSVC defines _KERNEL_MODE when /kernel is passed. Also, /kernel disables RTTI and C++ exception handling. https:/