Also, including the SVN revision (llvm's util/git-svn/git-svnrevert script can help with this) is helpful for other folks following along who may not be using git.
On Mon, Nov 26, 2018 at 12:19 PM Aaron Ballman via cfe-commits < cfe-commits@lists.llvm.org> wrote: > On Mon, Nov 26, 2018 at 3:13 PM Zola Bridges via cfe-commits > <cfe-commits@lists.llvm.org> wrote: > > > > Author: zbrid > > Date: Mon Nov 26 12:11:18 2018 > > New Revision: 347588 > > > > URL: http://llvm.org/viewvc/llvm-project?rev=347588&view=rev > > Log: > > Revert "[clang][slh] add attribute for speculative load hardening" > > > > This reverts commit 801eaf91221ba6dd6996b29ff82659ad6359e885. > > Next time you revert something, can you add an explanation as to why > it was reverted into the commit message? It helps when doing code > archaeology. > > Thanks! > > ~Aaron > > > > > Removed: > > cfe/trunk/test/CodeGen/attr-speculative-load-hardening.cpp > > cfe/trunk/test/CodeGen/attr-speculative-load-hardening.m > > cfe/trunk/test/SemaCXX/attr-speculative-load-hardening.cpp > > Modified: > > cfe/trunk/include/clang/Basic/Attr.td > > cfe/trunk/include/clang/Basic/AttrDocs.td > > cfe/trunk/lib/CodeGen/CGCall.cpp > > cfe/trunk/lib/Sema/SemaDeclAttr.cpp > > > > Modified: cfe/trunk/include/clang/Basic/Attr.td > > URL: > http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Basic/Attr.td?rev=347588&r1=347587&r2=347588&view=diff > > > ============================================================================== > > --- cfe/trunk/include/clang/Basic/Attr.td (original) > > +++ cfe/trunk/include/clang/Basic/Attr.td Mon Nov 26 12:11:18 2018 > > @@ -3091,9 +3091,3 @@ def AlwaysDestroy : InheritableAttr { > > let Subjects = SubjectList<[Var]>; > > let Documentation = [AlwaysDestroyDocs]; > > } > > - > > -def SpeculativeLoadHardening : InheritableAttr { > > - let Spellings = [Clang<"speculative_load_hardening">]; > > - let Subjects = SubjectList<[Function, ObjCMethod], ErrorDiag>; > > - let Documentation = [SpeculativeLoadHardeningDocs]; > > -} > > > > Modified: cfe/trunk/include/clang/Basic/AttrDocs.td > > URL: > http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Basic/AttrDocs.td?rev=347588&r1=347587&r2=347588&view=diff > > > ============================================================================== > > --- cfe/trunk/include/clang/Basic/AttrDocs.td (original) > > +++ cfe/trunk/include/clang/Basic/AttrDocs.td Mon Nov 26 12:11:18 2018 > > @@ -3629,27 +3629,3 @@ GNU inline semantics are the default beh > > ``-std=c89``, ``-std=c94``, or ``-fgnu89-inline``. > > }]; > > } > > - > > -def SpeculativeLoadHardeningDocs : Documentation { > > - let Category = DocCatFunction; > > - let Content = [{ > > - This attribute can be applied to a function declaration in order to > indicate > > - that `Speculative Load Hardening < > https://llvm.org/docs/SpeculativeLoadHardening.html>`_ > > - should be enabled for the function body. This can also be applied to > a method > > - in Objective C. > > - > > - Speculative Load Hardening is a best-effort mitigation against > > - information leak attacks that make use of control flow > > - miss-speculation - specifically miss-speculation of whether a branch > > - is taken or not. Typically vulnerabilities enabling such attacks are > > - classified as "Spectre variant #1". Notably, this does not attempt to > > - mitigate against miss-speculation of branch target, classified as > > - "Spectre variant #2" vulnerabilities. > > - > > - When inlining, the attribute is sticky. Inlining a function that > > - carries this attribute will cause the caller to gain the > > - attribute. This is intended to provide a maximally conservative model > > - where the code in a function annotated with this attribute will always > > - (even after inlining) end up hardened. > > - }]; > > -} > > > > Modified: cfe/trunk/lib/CodeGen/CGCall.cpp > > URL: > http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGCall.cpp?rev=347588&r1=347587&r2=347588&view=diff > > > ============================================================================== > > --- cfe/trunk/lib/CodeGen/CGCall.cpp (original) > > +++ cfe/trunk/lib/CodeGen/CGCall.cpp Mon Nov 26 12:11:18 2018 > > @@ -1791,8 +1791,6 @@ void CodeGenModule::ConstructDefaultFnAt > > if (CodeGenOpts.Backchain) > > FuncAttrs.addAttribute("backchain"); > > > > - // FIXME: The interaction of this attribute with the SLH command > line flag > > - // has not been determined. > > if (CodeGenOpts.SpeculativeLoadHardening) > > FuncAttrs.addAttribute(llvm::Attribute::SpeculativeLoadHardening); > > } > > @@ -1856,8 +1854,6 @@ void CodeGenModule::ConstructAttributeLi > > FuncAttrs.addAttribute(llvm::Attribute::NoDuplicate); > > if (TargetDecl->hasAttr<ConvergentAttr>()) > > FuncAttrs.addAttribute(llvm::Attribute::Convergent); > > - if (TargetDecl->hasAttr<SpeculativeLoadHardeningAttr>()) > > - FuncAttrs.addAttribute(llvm::Attribute::SpeculativeLoadHardening); > > > > if (const FunctionDecl *Fn = dyn_cast<FunctionDecl>(TargetDecl)) { > > AddAttributesFromFunctionProtoType( > > > > Modified: cfe/trunk/lib/Sema/SemaDeclAttr.cpp > > URL: > http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaDeclAttr.cpp?rev=347588&r1=347587&r2=347588&view=diff > > > ============================================================================== > > --- cfe/trunk/lib/Sema/SemaDeclAttr.cpp (original) > > +++ cfe/trunk/lib/Sema/SemaDeclAttr.cpp Mon Nov 26 12:11:18 2018 > > @@ -6373,9 +6373,6 @@ static void ProcessDeclAttribute(Sema &S > > case ParsedAttr::AT_Section: > > handleSectionAttr(S, D, AL); > > break; > > - case ParsedAttr::AT_SpeculativeLoadHardening: > > - handleSimpleAttribute<SpeculativeLoadHardeningAttr>(S, D, AL); > > - break; > > case ParsedAttr::AT_CodeSeg: > > handleCodeSegAttr(S, D, AL); > > break; > > > > Removed: cfe/trunk/test/CodeGen/attr-speculative-load-hardening.cpp > > URL: > http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/attr-speculative-load-hardening.cpp?rev=347587&view=auto > > > ============================================================================== > > --- cfe/trunk/test/CodeGen/attr-speculative-load-hardening.cpp (original) > > +++ cfe/trunk/test/CodeGen/attr-speculative-load-hardening.cpp (removed) > > @@ -1,18 +0,0 @@ > > -// RUN: %clang_cc1 -std=c++11 -disable-llvm-passes -emit-llvm %s -o - | > FileCheck %s --check-prefix=CHECK1 > > -// RUN: %clang_cc1 -std=c++11 -disable-llvm-passes -emit-llvm %s -o - | > FileCheck %s --check-prefix=CHECK2 > > -// > > -// Check that we set the attribute on each function. > > - > > -[[clang::speculative_load_hardening]] > > -int test1() { > > - return 42; > > -} > > - > > -int __attribute__((speculative_load_hardening)) test2() { > > - return 42; > > -} > > -// CHECK1: @{{.*}}test1{{.*}}[[SLH1:#[0-9]+]] > > -// CHECK1: attributes [[SLH1]] = { > {{.*}}speculative_load_hardening{{.*}} } > > - > > -// CHECK2: @{{.*}}test2{{.*}}[[SLH2:#[0-9]+]] > > -// CHECK2: attributes [[SLH2]] = { > {{.*}}speculative_load_hardening{{.*}} } > > > > Removed: cfe/trunk/test/CodeGen/attr-speculative-load-hardening.m > > URL: > http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/attr-speculative-load-hardening.m?rev=347587&view=auto > > > ============================================================================== > > --- cfe/trunk/test/CodeGen/attr-speculative-load-hardening.m (original) > > +++ cfe/trunk/test/CodeGen/attr-speculative-load-hardening.m (removed) > > @@ -1,9 +0,0 @@ > > -// RUN: %clang -emit-llvm %s -o - -S | FileCheck %s -check-prefix=SLH > > - > > -int main() __attribute__((speculative_load_hardening)) { > > - return 0; > > -} > > - > > -// SLH: @{{.*}}main{{.*}}[[SLH:#[0-9]+]] > > - > > -// SLH: attributes [[SLH]] = { {{.*}}speculative_load_hardening{{.*}} } > > > > Removed: cfe/trunk/test/SemaCXX/attr-speculative-load-hardening.cpp > > URL: > http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaCXX/attr-speculative-load-hardening.cpp?rev=347587&view=auto > > > ============================================================================== > > --- cfe/trunk/test/SemaCXX/attr-speculative-load-hardening.cpp (original) > > +++ cfe/trunk/test/SemaCXX/attr-speculative-load-hardening.cpp (removed) > > @@ -1,34 +0,0 @@ > > -// RUN: %clang_cc1 -std=c++11 -fsyntax-only -verify %s > > - > > -int i __attribute__((speculative_load_hardening)); // expected-error > {{'speculative_load_hardening' attribute only applies to functions}} > > - > > -void f1() __attribute__((speculative_load_hardening)); > > -void f2() __attribute__((speculative_load_hardening(1))); // > expected-error {{'speculative_load_hardening' attribute takes no arguments}} > > - > > -template <typename T> > > -void tf1() __attribute__((speculative_load_hardening)); > > - > > -int f3(int __attribute__((speculative_load_hardening)), int); // > expected-error {{'speculative_load_hardening' attribute only applies to > functions}} > > - > > -struct A { > > - int f __attribute__((speculative_load_hardening)); // expected-error > {{'speculative_load_hardening' attribute only applies to functions}} > > - void mf1() __attribute__((speculative_load_hardening)); > > - static void mf2() __attribute__((speculative_load_hardening)); > > -}; > > - > > -int ci [[speculative_load_hardening]]; // expected-error > {{'speculative_load_hardening' attribute only applies to functions}} > > - > > -[[speculative_load_hardening]] void cf1(); > > -[[speculative_load_hardening(1)]] void cf2(); // expected-error > {{'speculative_load_hardening' attribute takes no arguments}} > > - > > -template <typename T> > > -[[speculative_load_hardening]] > > -void ctf1(); > > - > > -int cf3(int c[[speculative_load_hardening]], int); // expected-error > {{'speculative_load_hardening' attribute only applies to functions}} > > - > > -struct CA { > > - int f [[speculative_load_hardening]]; // expected-error > {{'speculative_load_hardening' attribute only applies to functions}} > > - [[speculative_load_hardening]] void mf1(); > > - [[speculative_load_hardening]] static void mf2(); > > -}; > > > > > > _______________________________________________ > > cfe-commits mailing list > > cfe-commits@lists.llvm.org > > http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits > _______________________________________________ > cfe-commits mailing list > cfe-commits@lists.llvm.org > http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits >
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits