Page MenuHomePhabricator

nickdesaulniers (Nick Desaulniers)
Google

Projects

User does not belong to any projects.

User Details

User Since
Apr 13 2018, 4:23 PM (126 w, 6 d)

Recent Activity

Today

nickdesaulniers added a comment to D85649: [AArch64] PAC/BTI code generation for LLVM generated functions.

Thanks @tejohnson for the feedback. Error sounds fine. The only other question I have is that a common pattern in the Linux kernel for progressive support of the ARM ISA extensions is to build isolated translation units that either use those features unconditionally but wont call into those translation units at runtime if the extensions are not present, or the kernel will live patch itself (ie. "alternatives" patching). Maybe @mrutland has thoughts; with BTI be runtime-patchable or otherwise enable-able at runtime. ie. one kernel image that runs on hardware both with and without BTI ISA extensions?

Fri, Sep 18, 10:37 AM · Restricted Project
nickdesaulniers accepted D87865: PR47468: Fix findPHICopyInsertPoint, so that copies aren't incorrectly inserted after an INLINEASM_BR..
Fri, Sep 18, 10:18 AM · Restricted Project

Yesterday

nickdesaulniers added inline comments to D87865: PR47468: Fix findPHICopyInsertPoint, so that copies aren't incorrectly inserted after an INLINEASM_BR..
Thu, Sep 17, 4:09 PM · Restricted Project
nickdesaulniers updated subscribers of D87865: PR47468: Fix findPHICopyInsertPoint, so that copies aren't incorrectly inserted after an INLINEASM_BR..
Thu, Sep 17, 3:47 PM · Restricted Project

Wed, Sep 16

nickdesaulniers updated subscribers of D85649: [AArch64] PAC/BTI code generation for LLVM generated functions.

The only question I have about module level attributes is what happens for LTO (which we use for Linux kernels used in Android)? Is there any conflict linking together objects from two different translation units with two different flags? Maybe this should fail hard; but it would be cool to alert developers at compile time, rather than have an awful bug to debug at runtime. Just food for thought; I don't know enough about LTO to know if it already has machinery to handle module level conflicts or not. Maybe @tejohnson or @pcc knows?

Wed, Sep 16, 2:34 PM · Restricted Project

Tue, Sep 15

nickdesaulniers accepted D81930: [AArch64] Add -mmark-bti-property flag..
Tue, Sep 15, 11:02 AM · Restricted Project, Restricted Project

Fri, Sep 11

nickdesaulniers added a comment to D81930: [AArch64] Add -mmark-bti-property flag..

I don't have any thoughts on the change per se, so just minor thoughts/generic code review.

Fri, Sep 11, 11:49 AM · Restricted Project, Restricted Project
nickdesaulniers added inline comments to D86508: [clang] improve GCC-compat for C90 __builtin_ functions.
Fri, Sep 11, 11:27 AM · Restricted Project

Wed, Sep 2

nickdesaulniers added a comment to D86508: [clang] improve GCC-compat for C90 __builtin_ functions.

Ok, this is ready for review. I plan to review the newer C standards than ISO C90 in follow up patches, so I'll likely be touching these file more. Figuring out a more maintainable sort order in particular is an itch I'd like to scratch.

Wed, Sep 2, 3:48 PM · Restricted Project
nickdesaulniers updated the diff for D86508: [clang] improve GCC-compat for C90 __builtin_ functions.
  • improve docs
Wed, Sep 2, 3:41 PM · Restricted Project
nickdesaulniers retitled D86508: [clang] improve GCC-compat for C90 __builtin_ functions from [clang] implement+test remaining C90 __builtin_ functions to [clang] improve GCC-compat for C90 __builtin_ functions.
Wed, Sep 2, 3:02 PM · Restricted Project
nickdesaulniers updated the summary of D86508: [clang] improve GCC-compat for C90 __builtin_ functions.
Wed, Sep 2, 2:59 PM · Restricted Project
nickdesaulniers planned changes to D86508: [clang] improve GCC-compat for C90 __builtin_ functions.
Wed, Sep 2, 2:43 PM · Restricted Project
nickdesaulniers added inline comments to D86508: [clang] improve GCC-compat for C90 __builtin_ functions.
Wed, Sep 2, 2:42 PM · Restricted Project
nickdesaulniers updated the diff for D86508: [clang] improve GCC-compat for C90 __builtin_ functions.
  • add putc and fputc builtins
Wed, Sep 2, 2:41 PM · Restricted Project
nickdesaulniers added inline comments to D86508: [clang] improve GCC-compat for C90 __builtin_ functions.
Wed, Sep 2, 1:35 PM · Restricted Project
nickdesaulniers accepted D69411: [MC] Resolve the difference of symbols in consecutive MCDataFragements.

With this patch applied, I no longer observe the error from https://github.com/ClangBuiltLinux/linux/issues/742 for 32b ARM, though I can't do a full kernel build with Clang's IA yet due to missing support for the adrl pseudo instruction. (https://github.com/ClangBuiltLinux/linux/issues/430, https://bugs.llvm.org/show_bug.cgi?id=24350) in order to boot test. I did boot test x86 (32b and 64b) and arm64 Linux kernels with this change just fine (using Clang's integrated assembler).

Wed, Sep 2, 12:21 PM · Restricted Project

Tue, Sep 1

nickdesaulniers added inline comments to D86508: [clang] improve GCC-compat for C90 __builtin_ functions.
Tue, Sep 1, 4:46 PM · Restricted Project
nickdesaulniers added inline comments to D86508: [clang] improve GCC-compat for C90 __builtin_ functions.
Tue, Sep 1, 4:26 PM · Restricted Project
nickdesaulniers added inline comments to D86508: [clang] improve GCC-compat for C90 __builtin_ functions.
Tue, Sep 1, 4:23 PM · Restricted Project
nickdesaulniers updated the diff for D86508: [clang] improve GCC-compat for C90 __builtin_ functions.
  • rebase on master, precommitted getLangOpts() change, dropped p7.cpp test change
Tue, Sep 1, 4:23 PM · Restricted Project
nickdesaulniers committed rG663f4f7edc24: [clang] consistently use getLangOpts() (authored by nickdesaulniers).
[clang] consistently use getLangOpts()
Tue, Sep 1, 4:02 PM
nickdesaulniers added a reviewer for D86508: [clang] improve GCC-compat for C90 __builtin_ functions: aaron.ballman.
Tue, Sep 1, 11:18 AM · Restricted Project
nickdesaulniers added a comment to D86508: [clang] improve GCC-compat for C90 __builtin_ functions.

bumping for review. Are there additional reviewers we could add to share the burden?

Tue, Sep 1, 11:18 AM · Restricted Project

Mon, Aug 31

nickdesaulniers added inline comments to D69411: [MC] Resolve the difference of symbols in consecutive MCDataFragements.
Mon, Aug 31, 11:02 AM · Restricted Project

Thu, Aug 27

nickdesaulniers accepted D85596: [Docs] Fix --print-supported-cpus option rendering.
Thu, Aug 27, 9:50 PM · Restricted Project
nickdesaulniers added inline comments to D69411: [MC] Resolve the difference of symbols in consecutive MCDataFragements.
Thu, Aug 27, 8:56 PM · Restricted Project

Wed, Aug 26

nickdesaulniers added a comment to D69925: remove redundant LLVM version from version string when setting CLANG_VENDOR.

Sorry! Thanks for fixing up OpenSSL!

Wed, Aug 26, 1:29 PM · Restricted Project

Tue, Aug 25

nickdesaulniers updated subscribers of D86508: [clang] improve GCC-compat for C90 __builtin_ functions.
Tue, Aug 25, 9:59 AM · Restricted Project

Mon, Aug 24

nickdesaulniers updated the diff for D86508: [clang] improve GCC-compat for C90 __builtin_ functions.
  • misuploaded
Mon, Aug 24, 11:58 PM · Restricted Project
nickdesaulniers updated the summary of D86508: [clang] improve GCC-compat for C90 __builtin_ functions.
Mon, Aug 24, 11:58 PM · Restricted Project
nickdesaulniers retitled D86508: [clang] improve GCC-compat for C90 __builtin_ functions from [clang] consistently use getLangOpts() to [clang] implement+test remaining C90 __builtin_ functions.
Mon, Aug 24, 11:58 PM · Restricted Project
nickdesaulniers updated the diff for D86508: [clang] improve GCC-compat for C90 __builtin_ functions.
  • add more docs
Mon, Aug 24, 11:57 PM · Restricted Project
nickdesaulniers requested review of D86508: [clang] improve GCC-compat for C90 __builtin_ functions.
Mon, Aug 24, 11:50 PM · Restricted Project

Thu, Aug 20

nickdesaulniers added inline comments to D86260: [CodeGen] Postprocess PHI nodes for callbr.
Thu, Aug 20, 11:18 AM · Restricted Project
nickdesaulniers added a reviewer for D86260: [CodeGen] Postprocess PHI nodes for callbr: efriedma.
Thu, Aug 20, 11:14 AM · Restricted Project
nickdesaulniers added inline comments to D86260: [CodeGen] Postprocess PHI nodes for callbr.
Thu, Aug 20, 10:57 AM · Restricted Project
nickdesaulniers added a reviewer for D86260: [CodeGen] Postprocess PHI nodes for callbr: craig.topper.
Thu, Aug 20, 10:56 AM · Restricted Project
nickdesaulniers added a comment to D85692: python bindings: fix DeprecationWarning.

Does this mean we officially no longer support python 2, which this change breaks?

Thu, Aug 20, 10:14 AM · Restricted Project

Aug 13 2020

nickdesaulniers updated subscribers of D83523: MachineSink: permit sinking into INLINEASM_BR indirect targets.
Aug 13 2020, 11:11 AM · Restricted Project

Aug 12 2020

nickdesaulniers added a comment to D85807: [Target] Cache the command line derived feature map in TargetOptions..

Thanks @craig.topper ! ++beers_owed;

Aug 12 2020, 12:40 PM · Restricted Project
nickdesaulniers updated subscribers of D85807: [Target] Cache the command line derived feature map in TargetOptions..
Aug 12 2020, 10:27 AM · Restricted Project
nickdesaulniers accepted D85807: [Target] Cache the command line derived feature map in TargetOptions..

LGTM; comparing the report at the bottom of https://reviews.llvm.org/D85257#2197114, repasted (before this patch):

+    3.59%  clang-12                   [.] llvm::X86::getImpliedFeatures
-    3.36%  clang-12                   [.] llvm::StringMapImpl::LookupBucketFor
   - 3.32% llvm::StringMapImpl::LookupBucketFor
      - 1.24% llvm::StringMap<bool, llvm::MallocAllocator>::try_emplace<>
         + 1.24% clang::targets::X86TargetInfo::setFeatureEnabled
Elapsed (wall clock) time (h:mm:ss or m:ss): 0:53.39
Aug 12 2020, 10:27 AM · Restricted Project
nickdesaulniers added a reviewer for D85807: [Target] Cache the command line derived feature map in TargetOptions.: Nathan-Huckleberry.
Aug 12 2020, 9:40 AM · Restricted Project

Aug 10 2020

nickdesaulniers added inline comments to D85572: [globalopt] Change so that emitting fragments doesn't use the type size of DIVariables.
Aug 10 2020, 4:40 PM · Restricted Project
nickdesaulniers committed rG05d74dbc3bb1: python bindings: fix DeprecationWarning (authored by nickdesaulniers).
python bindings: fix DeprecationWarning
Aug 10 2020, 3:26 PM
nickdesaulniers closed D85692: python bindings: fix DeprecationWarning.
Aug 10 2020, 3:25 PM · Restricted Project
nickdesaulniers requested review of D85692: python bindings: fix DeprecationWarning.
Aug 10 2020, 3:22 PM · Restricted Project
nickdesaulniers committed rG4f2ad15db535: [Clang] implement -fno-eliminate-unused-debug-types (authored by nickdesaulniers).
[Clang] implement -fno-eliminate-unused-debug-types
Aug 10 2020, 3:09 PM
nickdesaulniers closed D80242: [Clang] implement -fno-eliminate-unused-debug-types.
Aug 10 2020, 3:09 PM · Restricted Project
nickdesaulniers added inline comments to D80242: [Clang] implement -fno-eliminate-unused-debug-types.
Aug 10 2020, 2:47 PM · Restricted Project
nickdesaulniers accepted D85572: [globalopt] Change so that emitting fragments doesn't use the type size of DIVariables.

As long as llvm/test/DebugInfo/Generic/global-sra-struct-zero-length.ll passes with this, I'm happy. LGTM

Aug 10 2020, 2:45 PM · Restricted Project
nickdesaulniers added a reviewer for D85572: [globalopt] Change so that emitting fragments doesn't use the type size of DIVariables: DavidSpickett.
Aug 10 2020, 2:44 PM · Restricted Project
nickdesaulniers added inline comments to D85596: [Docs] Fix --print-supported-cpus option rendering.
Aug 10 2020, 2:39 PM · Restricted Project
nickdesaulniers added inline comments to D80242: [Clang] implement -fno-eliminate-unused-debug-types.
Aug 10 2020, 2:36 PM · Restricted Project
nickdesaulniers added a comment to D85649: [AArch64] PAC/BTI code generation for LLVM generated functions.

Module-level attributes are overridden by function level attributes.

Aug 10 2020, 12:51 PM · Restricted Project
nickdesaulniers abandoned D85565: [Clang][Test] add specific targets for OSX failures.

refixing in https://reviews.llvm.org/D80242

Aug 10 2020, 12:38 PM · Restricted Project
nickdesaulniers added a comment to rGcbd8ec937093: fix windows build for D80242.

refixing in https://reviews.llvm.org/D80242.

Aug 10 2020, 12:38 PM
nickdesaulniers added a comment to D80242: [Clang] implement -fno-eliminate-unused-debug-types.

Hi @dblaikie , sorry for messing up the upload, I think it's good now, but to see the latest change, you'll need to look at the diff between the 2 prior versions (https://reviews.llvm.org/D80242?vs=284053&id=284477#toc).

Aug 10 2020, 12:37 PM · Restricted Project
nickdesaulniers updated the diff for D80242: [Clang] implement -fno-eliminate-unused-debug-types.
  • squash and reupload
Aug 10 2020, 12:31 PM · Restricted Project
nickdesaulniers updated the diff for D80242: [Clang] implement -fno-eliminate-unused-debug-types.
  • rebase, move Codegen tests to _cc1, move -g1 test to driver test, use more regex for ![0-9]+, manually test --target=x86_64-apple-macosx10.15.0 which has a different default debug info kind.
Aug 10 2020, 12:30 PM · Restricted Project
nickdesaulniers retitled D85620: [AARCH64] [MC] add memtag as an alias of mte architecture extension from [AARCH64] [MC] add memtag as an alis of mte architecture extension to [AARCH64] [MC] add memtag as an alias of mte architecture extension.
Aug 10 2020, 11:36 AM · Restricted Project
nickdesaulniers accepted D85620: [AARCH64] [MC] add memtag as an alias of mte architecture extension.

Thanks @jcai19 !

Aug 10 2020, 11:35 AM · Restricted Project

Aug 7 2020

nickdesaulniers added a comment to D80242: [Clang] implement -fno-eliminate-unused-debug-types.

So it looks like %clang++ should be %clangxx for windows, then for OSX the default value of debug-info-kind is different, while the tests also seem to fail there.

Aug 7 2020, 4:15 PM · Restricted Project
nickdesaulniers planned changes to D80242: [Clang] implement -fno-eliminate-unused-debug-types.
Aug 7 2020, 4:13 PM · Restricted Project
nickdesaulniers reopened D80242: [Clang] implement -fno-eliminate-unused-debug-types.
Aug 7 2020, 4:13 PM · Restricted Project
nickdesaulniers planned changes to D85565: [Clang][Test] add specific targets for OSX failures.
Aug 7 2020, 4:12 PM · Restricted Project
nickdesaulniers added a reverting change for rGe486921fd6cf: [Clang] implement -fno-eliminate-unused-debug-types: rGabb9bf4bcf98: Revert "[Clang] implement -fno-eliminate-unused-debug-types".
Aug 7 2020, 4:12 PM
nickdesaulniers committed rGabb9bf4bcf98: Revert "[Clang] implement -fno-eliminate-unused-debug-types" (authored by nickdesaulniers).
Revert "[Clang] implement -fno-eliminate-unused-debug-types"
Aug 7 2020, 4:12 PM
nickdesaulniers added a reverting change for rGcbd8ec937093: fix windows build for D80242: rG73413d266abc: Revert "fix windows build for D80242".
Aug 7 2020, 4:12 PM
nickdesaulniers committed rG73413d266abc: Revert "fix windows build for D80242" (authored by nickdesaulniers).
Revert "fix windows build for D80242"
Aug 7 2020, 4:12 PM
nickdesaulniers added a reverting change for D80242: [Clang] implement -fno-eliminate-unused-debug-types: rGabb9bf4bcf98: Revert "[Clang] implement -fno-eliminate-unused-debug-types".
Aug 7 2020, 4:12 PM · Restricted Project
nickdesaulniers added a comment to D85565: [Clang][Test] add specific targets for OSX failures.

I'm just going to revert cbd8ec93709376fbf404c99f4eee399790e26db7 and e486921fd6cf96ae9114adac455f7c0b5c1088a7 and sort this out on Monday.

Aug 7 2020, 4:11 PM · Restricted Project
nickdesaulniers added a reviewer for D85565: [Clang][Test] add specific targets for OSX failures: MaskRay.
Aug 7 2020, 4:02 PM · Restricted Project
nickdesaulniers requested review of D85565: [Clang][Test] add specific targets for OSX failures.
Aug 7 2020, 4:01 PM · Restricted Project
nickdesaulniers added a comment to D80242: [Clang] implement -fno-eliminate-unused-debug-types.

Looks like another related failure for http://green.lab.llvm.org/green/job/clang-stage1-RA/13460/consoleFull#-42777206a1ca8a51-895e-46c6-af87-ce24fa4cd561 ?

Aug 7 2020, 3:49 PM · Restricted Project
nickdesaulniers added a comment to D80242: [Clang] implement -fno-eliminate-unused-debug-types.

fix pushed in cbd8ec93709376fbf404c99f4eee399790e26db7

Aug 7 2020, 3:00 PM · Restricted Project
nickdesaulniers committed rGcbd8ec937093: fix windows build for D80242 (authored by nickdesaulniers).
fix windows build for D80242
Aug 7 2020, 3:00 PM
nickdesaulniers added a comment to D80242: [Clang] implement -fno-eliminate-unused-debug-types.

build failure on windows: http://lab.llvm.org:8011/builders/llvm-clang-win-x-aarch64/builds/1886/steps/test-check-clang/logs/FAIL%3A%20Clang%3A%3Adebug-info-unused-types.cpp

Aug 7 2020, 2:56 PM · Restricted Project
nickdesaulniers committed rGe486921fd6cf: [Clang] implement -fno-eliminate-unused-debug-types (authored by nickdesaulniers).
[Clang] implement -fno-eliminate-unused-debug-types
Aug 7 2020, 2:14 PM
nickdesaulniers closed D80242: [Clang] implement -fno-eliminate-unused-debug-types.
Aug 7 2020, 2:14 PM · Restricted Project
nickdesaulniers updated the diff for D80242: [Clang] implement -fno-eliminate-unused-debug-types.
  • git clang-format
Aug 7 2020, 2:09 PM · Restricted Project
nickdesaulniers updated the diff for D80242: [Clang] implement -fno-eliminate-unused-debug-types.
  • rebase, centralize DebugInfoKind update as per @dblaikie
Aug 7 2020, 1:25 PM · Restricted Project
nickdesaulniers added a comment to D80242: [Clang] implement -fno-eliminate-unused-debug-types.

bumping for review

Aug 7 2020, 10:39 AM · Restricted Project
nickdesaulniers added reviewers for D80242: [Clang] implement -fno-eliminate-unused-debug-types: srhines, pirama.
Aug 7 2020, 10:38 AM · Restricted Project

Aug 5 2020

nickdesaulniers updated subscribers of rGc41a18cf6179: [CMake] Default ENABLE_X86_RELAX_RELOCATIONS to ON.

Cross referencing the boot failure report from @nathanchance : https://github.com/ClangBuiltLinux/linux/issues/1121

Aug 5 2020, 4:23 PM
nickdesaulniers added a comment to D85257: [X86] Optimize getImpliedDisabledFeatures & getImpliedEnabledFeatures.

4c9ed3ed3d2fc7622acf5fc0d80ad20b44cf376a :
Elapsed (wall clock) time (h:mm:ss or m:ss): 0:56.05
Top methods in bottom up trace:

+    9.17%  clang-12                   [.] getImpliedDisabledFeatures
-    3.04%  clang-12                   [.] llvm::StringMapImpl::LookupBucketFor
   - 3.01% llvm::StringMapImpl::LookupBucketFor
      - 1.10% llvm::StringMap<bool, llvm::MallocAllocator>::try_emplace<>
         + 1.10% clang::targets::X86TargetInfo::setFeatureEnabled
+    1.67%  clang-12                   [.] llvm::X86::getImpliedFeatures

0c7af8c83bd1acb0ca78f35ddde29b6fde4363a0:
Elapsed (wall clock) time (h:mm:ss or m:ss): 0:53.39
Top methods in bottom up trace:

+    3.59%  clang-12                   [.] llvm::X86::getImpliedFeatures
-    3.36%  clang-12                   [.] llvm::StringMapImpl::LookupBucketFor
   - 3.32% llvm::StringMapImpl::LookupBucketFor
      - 1.24% llvm::StringMap<bool, llvm::MallocAllocator>::try_emplace<>
         + 1.24% clang::targets::X86TargetInfo::setFeatureEnabled

So that's good; getImpliedDisabledFeatures now falls out of the top slot. Looks like memoizing llvm::X86::getImpliedFeatures will still help, a lot.

Aug 5 2020, 11:37 AM · Restricted Project

Aug 4 2020

nickdesaulniers added a comment to D85257: [X86] Optimize getImpliedDisabledFeatures & getImpliedEnabledFeatures.

I'll try to get some numbers comparing overall build time, and full build profiles with this applied, tomorrow. Thanks for the hard work! (And I'll work with @Nathan-Huckleberry on the suggestion for Sema::ActOnGCCAsmStmt. We can likely save a pointer to the llvm::StringMap<bool> FeatureMap within Sema and only recompute it if we have a target function attribute).

Aug 4 2020, 5:53 PM · Restricted Project
nickdesaulniers added a comment to D83273: [X86] Remove the feature dependency handling in X86TargetInfo::setFeatureEnabledImpl to a table based lookup in X86TargetParser.cpp.

That said, it's a 10% compile time regression for compiling something like the linux kernel or anything that's very explicit what flags they set.

Aug 4 2020, 5:40 PM · Restricted Project, Restricted Project
nickdesaulniers added a comment to D85257: [X86] Optimize getImpliedDisabledFeatures & getImpliedEnabledFeatures.

Probably the call to Context.getFunctionFeatureMap(FeatureMap, FD); in clang::Sema::ActOnGCCAsmStmt.

Aug 4 2020, 5:38 PM · Restricted Project
nickdesaulniers added a comment to D85257: [X86] Optimize getImpliedDisabledFeatures & getImpliedEnabledFeatures.

attaching gdb, setting a breakpoint in clang::targets::X86TargetInfo::initFeatureMap, skipping the first instance which looks legit (clang::TargetInfo::CreateTargetInfo -> clang::targets::X86TargetInfo::initFeatureMap -> clang::targets::X86TargetInfo::initFeatureMap), the rest all look like:

Aug 4 2020, 5:35 PM · Restricted Project
nickdesaulniers added a comment to D85257: [X86] Optimize getImpliedDisabledFeatures & getImpliedEnabledFeatures.

I suspect setFeatureEnabled is being called for every global.

Aug 4 2020, 5:17 PM · Restricted Project
nickdesaulniers added a comment to D85257: [X86] Optimize getImpliedDisabledFeatures & getImpliedEnabledFeatures.

I suspect setFeatureEnabled is being called for every global.

Aug 4 2020, 4:56 PM · Restricted Project
nickdesaulniers added inline comments to D85257: [X86] Optimize getImpliedDisabledFeatures & getImpliedEnabledFeatures.
Aug 4 2020, 4:55 PM · Restricted Project
nickdesaulniers added a comment to D85257: [X86] Optimize getImpliedDisabledFeatures & getImpliedEnabledFeatures.

Also, I don't think the results of the queries to getImpliedDisabledFeatures and getImpliedEnabledFeatures is likely to change, though we repeatedly check the same values (at least for this input I'm testing). Is it worth throwing some FeatureBitSets in a map of some sort?

Aug 4 2020, 4:51 PM · Restricted Project
nickdesaulniers added a comment to D85257: [X86] Optimize getImpliedDisabledFeatures & getImpliedEnabledFeatures.

Also, I don't think the results of the queries to getImpliedDisabledFeatures and getImpliedEnabledFeatures is likely to change, though we repeatedly check the same values (at least for this input I'm testing). Is it worth throwing some FeatureBitSets in a map of some sort?

Aug 4 2020, 4:45 PM · Restricted Project
nickdesaulniers added a comment to D85257: [X86] Optimize getImpliedDisabledFeatures & getImpliedEnabledFeatures.

Thanks for the patch, I'm happy to test it out.

Aug 4 2020, 4:37 PM · Restricted Project
nickdesaulniers added a comment to D83273: [X86] Remove the feature dependency handling in X86TargetInfo::setFeatureEnabledImpl to a table based lookup in X86TargetParser.cpp.

It's a pretty nasty revert in our downstream tree where we have prototyped future ISAs. So I'd like a little time to take a look.

@nickdesaulniers what cpu and fetaures are on your command lines. getImpliedDisabledFeatures should only be called if some feature is explicitly being disabled.

Aug 4 2020, 4:10 PM · Restricted Project, Restricted Project
nickdesaulniers updated subscribers of D83273: [X86] Remove the feature dependency handling in X86TargetInfo::setFeatureEnabledImpl to a table based lookup in X86TargetParser.cpp.

cc @nikic http://llvm-compile-time-tracker.com/compare.php?from=094e99d264c937cad33796b8c92fe123cb544c9e&to=16f3d698f2afbbea43e0c3df81df6f2a640ce806&stat=instructions gives me an error, am I holding it wrong?

Aug 4 2020, 3:59 PM · Restricted Project, Restricted Project
nickdesaulniers added a comment to D83273: [X86] Remove the feature dependency handling in X86TargetInfo::setFeatureEnabledImpl to a table based lookup in X86TargetParser.cpp.

I just collected a perf profile for an entire Linux kernel x86 build. getImpliedDisabledFeatures is at the top with 9.15% of time spent in self.

Aug 4 2020, 3:48 PM · Restricted Project, Restricted Project