Author: Jonas Paulsson Date: 2019-12-18T11:04:13-08:00 New Revision: ca520592c081a76b45613ec794ebee4920933c1c
URL: https://github.com/llvm/llvm-project/commit/ca520592c081a76b45613ec794ebee4920933c1c DIFF: https://github.com/llvm/llvm-project/commit/ca520592c081a76b45613ec794ebee4920933c1c.diff LOG: [Clang FE, SystemZ] Don't add "true" value for the "mnop-mcount" attribute. Let the "mnop-mcount" function attribute simply be present or non-present. Update SystemZ backend as well to use hasFnAttribute() instead. Review: Ulrich Weigand https://reviews.llvm.org/D71669 Added: Modified: clang/lib/CodeGen/CodeGenFunction.cpp clang/test/CodeGen/mnop-mcount.c llvm/lib/Target/SystemZ/SystemZAsmPrinter.cpp llvm/lib/Target/SystemZ/SystemZISelDAGToDAG.cpp llvm/test/CodeGen/SystemZ/mnop-mcount-01.ll llvm/test/CodeGen/SystemZ/mnop-mcount-02.ll Removed: ################################################################################ diff --git a/clang/lib/CodeGen/CodeGenFunction.cpp b/clang/lib/CodeGen/CodeGenFunction.cpp index 0db17431814f..89ce31e9b450 100644 --- a/clang/lib/CodeGen/CodeGenFunction.cpp +++ b/clang/lib/CodeGen/CodeGenFunction.cpp @@ -966,7 +966,7 @@ void CodeGenFunction::StartFunction(GlobalDecl GD, QualType RetTy, if (!CGM.getCodeGenOpts().CallFEntry) CGM.getDiags().Report(diag::err_opt_not_valid_without_opt) << "-mnop-mcount" << "-mfentry"; - Fn->addFnAttr("mnop-mcount", "true"); + Fn->addFnAttr("mnop-mcount"); } } } diff --git a/clang/test/CodeGen/mnop-mcount.c b/clang/test/CodeGen/mnop-mcount.c index 08d000dc4131..a6b10b625050 100644 --- a/clang/test/CodeGen/mnop-mcount.c +++ b/clang/test/CodeGen/mnop-mcount.c @@ -17,9 +17,9 @@ int __attribute__((no_instrument_function)) no_instrument(void) { return foo(); } -//CHECK: attributes #0 = { {{.*}}"mnop-mcount"="true"{{.*}} } +//CHECK: attributes #0 = { {{.*}}"mnop-mcount"{{.*}} } //CHECK: attributes #1 = { {{.*}} } -//CHECK-NOT: attributes #1 = { {{.*}}"mnop-mcount"="true"{{.*}} } +//CHECK-NOT: attributes #1 = { {{.*}}"mnop-mcount"{{.*}} } //NOMFENTRY: error: option '-mnop-mcount' cannot be specified without '-mfentry' //NOPG-NOT: attributes #0 = { {{.*}}"mnop-mcount"{{.*}} } //NOPG-NOT: attributes #1 = { {{.*}}"mnop-mcount"{{.*}} } diff --git a/llvm/lib/Target/SystemZ/SystemZAsmPrinter.cpp b/llvm/lib/Target/SystemZ/SystemZAsmPrinter.cpp index 10023e9e169c..34f7bc99a0d7 100644 --- a/llvm/lib/Target/SystemZ/SystemZAsmPrinter.cpp +++ b/llvm/lib/Target/SystemZ/SystemZAsmPrinter.cpp @@ -553,8 +553,7 @@ static unsigned EmitNop(MCContext &OutContext, MCStreamer &OutStreamer, void SystemZAsmPrinter::LowerFENTRY_CALL(const MachineInstr &MI, SystemZMCInstLower &Lower) { MCContext &Ctx = MF->getContext(); - if (MF->getFunction().getFnAttribute("mnop-mcount") - .getValueAsString() == "true") { + if (MF->getFunction().hasFnAttribute("mnop-mcount")) { EmitNop(Ctx, *OutStreamer, 6, getSubtargetInfo()); return; } diff --git a/llvm/lib/Target/SystemZ/SystemZISelDAGToDAG.cpp b/llvm/lib/Target/SystemZ/SystemZISelDAGToDAG.cpp index 751034c2d41a..0bcbce68a5fe 100644 --- a/llvm/lib/Target/SystemZ/SystemZISelDAGToDAG.cpp +++ b/llvm/lib/Target/SystemZ/SystemZISelDAGToDAG.cpp @@ -347,7 +347,7 @@ class SystemZDAGToDAGISel : public SelectionDAGISel { bool runOnMachineFunction(MachineFunction &MF) override { const Function &F = MF.getFunction(); - if (F.getFnAttribute("mnop-mcount").getValueAsString() == "true" && + if (F.hasFnAttribute("mnop-mcount") && F.getFnAttribute("fentry-call").getValueAsString() != "true") report_fatal_error("mnop-mcount only supported with fentry-call"); diff --git a/llvm/test/CodeGen/SystemZ/mnop-mcount-01.ll b/llvm/test/CodeGen/SystemZ/mnop-mcount-01.ll index 38f1db537b52..99aff5a223e6 100644 --- a/llvm/test/CodeGen/SystemZ/mnop-mcount-01.ll +++ b/llvm/test/CodeGen/SystemZ/mnop-mcount-01.ll @@ -22,5 +22,5 @@ entry: } attributes #0 = { "fentry-call"="true" } -attributes #1 = { "fentry-call"="true" "mnop-mcount"="true" } +attributes #1 = { "fentry-call"="true" "mnop-mcount" } diff --git a/llvm/test/CodeGen/SystemZ/mnop-mcount-02.ll b/llvm/test/CodeGen/SystemZ/mnop-mcount-02.ll index 19b1724d16ad..4a3629111318 100644 --- a/llvm/test/CodeGen/SystemZ/mnop-mcount-02.ll +++ b/llvm/test/CodeGen/SystemZ/mnop-mcount-02.ll @@ -7,5 +7,4 @@ entry: ret void } -attributes #0 = { "instrument-function-entry-inlined"="mcount" "mnop-mcount"="true" } - +attributes #0 = { "instrument-function-entry-inlined"="mcount" "mnop-mcount" } _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits