[PATCH] D144823: [Driver][FreeBSD] Simplify ARM handling

2023-03-10 Thread Brad Smith via Phabricator via cfe-commits
This revision was landed with ongoing or failed builds.
This revision was automatically updated to reflect the committed changes.
Closed by commit rG13a10e7ec90a: [Driver][FreeBSD] Simplify ARM handling 
(authored by brad).

Changed prior to commit:
  https://reviews.llvm.org/D144823?vs=500553=504267#toc

Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D144823/new/

https://reviews.llvm.org/D144823

Files:
  clang/lib/Basic/Targets/ARM.cpp
  clang/lib/Driver/ToolChains/FreeBSD.cpp
  clang/lib/Driver/ToolChains/FreeBSD.h
  clang/test/Driver/arm-abi.c
  clang/test/Driver/freebsd.c
  llvm/lib/TargetParser/ARMTargetParser.cpp

Index: llvm/lib/TargetParser/ARMTargetParser.cpp
===
--- llvm/lib/TargetParser/ARMTargetParser.cpp
+++ llvm/lib/TargetParser/ARMTargetParser.cpp
@@ -523,7 +523,7 @@
   default:
 if (TT.isOSNetBSD())
   return "apcs-gnu";
-if (TT.isOSOpenBSD() || TT.isOHOSFamily())
+if (TT.isOSFreeBSD() || TT.isOSOpenBSD() || TT.isOHOSFamily())
   return "aapcs-linux";
 return "aapcs";
   }
Index: clang/test/Driver/freebsd.c
===
--- clang/test/Driver/freebsd.c
+++ clang/test/Driver/freebsd.c
@@ -146,9 +146,10 @@
 
 // RUN: %clang -### %s --target=arm-unknown-freebsd10.0 -no-integrated-as 2>&1 \
 // RUN:   | FileCheck --check-prefix=CHECK-ARM %s
-// CHECK-ARM: "-cc1"{{.*}}" "-exception-model=sjlj"
-// CHECK-ARM: as{{.*}}" "-mfpu=softvfp"{{.*}}"-matpcs"
-// CHECK-ARM-EABI-NOT: as{{.*}}" "-mfpu=vfp"
+// CHECK-ARM-NOT: "-cc1"{{.*}}" "-exception-model=sjlj"
+// CHECK-ARM: as{{.*}}" "-mfpu=softvfp"{{.*}}"-meabi=5"
+// CHECK-ARM-NOT: as{{.*}}" "-mfpu=vfp"
+// CHECK-ARM-NOT: as{{.*}}" "-matpcs"
 
 // RUN: %clang -### %s --target=arm-gnueabi-freebsd10.0 -no-integrated-as 2>&1 \
 // RUN:   | FileCheck --check-prefix=CHECK-ARM-EABI %s
Index: clang/test/Driver/arm-abi.c
===
--- clang/test/Driver/arm-abi.c
+++ clang/test/Driver/arm-abi.c
@@ -28,7 +28,9 @@
 // RUN: %clang -target arm--netbsd-eabihf %s -### -o %t.o 2>&1 \
 // RUN:   | FileCheck -check-prefix=CHECK-AAPCS %s
 
-// OpenBSD defaults to aapcs-linux
+// FreeBSD / OpenBSD default to aapcs-linux
+// RUN: %clang -target arm--freebsd- %s -### -o %t.o 2>&1 \
+// RUN:   | FileCheck -check-prefix=CHECK-AAPCS-LINUX %s
 // RUN: %clang -target arm--openbsd- %s -### -o %t.o 2>&1 \
 // RUN:   | FileCheck -check-prefix=CHECK-AAPCS-LINUX %s
 
Index: clang/lib/Driver/ToolChains/FreeBSD.h
===
--- clang/lib/Driver/ToolChains/FreeBSD.h
+++ clang/lib/Driver/ToolChains/FreeBSD.h
@@ -78,8 +78,6 @@
   void AddHIPIncludeArgs(const llvm::opt::ArgList ,
  llvm::opt::ArgStringList ) const override;
 
-  llvm::ExceptionHandling
-  GetExceptionModel(const llvm::opt::ArgList ) const override;
   UnwindTableLevel
   getDefaultUnwindTableLevel(const llvm::opt::ArgList ) const override;
   bool isPIEDefault(const llvm::opt::ArgList ) const override;
Index: clang/lib/Driver/ToolChains/FreeBSD.cpp
===
--- clang/lib/Driver/ToolChains/FreeBSD.cpp
+++ clang/lib/Driver/ToolChains/FreeBSD.cpp
@@ -85,16 +85,7 @@
 else
   CmdArgs.push_back("-mfpu=softvfp");
 
-switch (getToolChain().getTriple().getEnvironment()) {
-case llvm::Triple::GNUEABIHF:
-case llvm::Triple::GNUEABI:
-case llvm::Triple::EABI:
-  CmdArgs.push_back("-meabi=5");
-  break;
-
-default:
-  CmdArgs.push_back("-matpcs");
-}
+CmdArgs.push_back("-meabi=5");
 break;
   }
   case llvm::Triple::sparc:
@@ -467,21 +458,6 @@
 
 Tool *FreeBSD::buildLinker() const { return new tools::freebsd::Linker(*this); }
 
-llvm::ExceptionHandling FreeBSD::GetExceptionModel(const ArgList ) const {
-  // FreeBSD uses SjLj exceptions on ARM oabi.
-  switch (getTriple().getEnvironment()) {
-  case llvm::Triple::GNUEABIHF:
-  case llvm::Triple::GNUEABI:
-  case llvm::Triple::EABI:
-return llvm::ExceptionHandling::None;
-  default:
-if (getTriple().getArch() == llvm::Triple::arm ||
-getTriple().getArch() == llvm::Triple::thumb)
-  return llvm::ExceptionHandling::SjLj;
-return llvm::ExceptionHandling::None;
-  }
-}
-
 bool FreeBSD::HasNativeLLVMSupport() const { return true; }
 
 ToolChain::UnwindTableLevel
Index: clang/lib/Basic/Targets/ARM.cpp
===
--- clang/lib/Basic/Targets/ARM.cpp
+++ clang/lib/Basic/Targets/ARM.cpp
@@ -254,6 +254,7 @@
  const TargetOptions )
 : TargetInfo(Triple), FPMath(FP_Default), IsAAPCS(true), LDREX(0),
   HW_FP(0) {
+  bool IsFreeBSD = Triple.isOSFreeBSD();
   bool IsOpenBSD = Triple.isOSOpenBSD();
   bool IsNetBSD = Triple.isOSNetBSD();
 
@@ -321,7 +322,7 

[PATCH] D144823: [Driver][FreeBSD] Simplify ARM handling

2023-03-07 Thread Brad Smith via Phabricator via cfe-commits
brad added a comment.

@emaste Ping?


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D144823/new/

https://reviews.llvm.org/D144823

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D144823: [Driver][FreeBSD] Simplify ARM handling

2023-03-04 Thread Dimitry Andric via Phabricator via cfe-commits
dim accepted this revision.
dim added a comment.
This revision is now accepted and ready to land.

I think this is fine. @emaste can you think of any objections? 8 and 9 are long 
gone.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D144823/new/

https://reviews.llvm.org/D144823

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D144823: [Driver][FreeBSD] Simplify ARM handling

2023-03-04 Thread Brad Smith via Phabricator via cfe-commits
brad added a comment.

ping.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D144823/new/

https://reviews.llvm.org/D144823

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D144823: [Driver][FreeBSD] Simplify ARM handling

2023-02-26 Thread Brad Smith via Phabricator via cfe-commits
brad updated this revision to Diff 500553.
brad added a comment.

Missing header part of diff.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D144823/new/

https://reviews.llvm.org/D144823

Files:
  clang/lib/Basic/Targets/ARM.cpp
  clang/lib/Driver/ToolChains/FreeBSD.cpp
  clang/lib/Driver/ToolChains/FreeBSD.h
  clang/test/Driver/arm-abi.c
  clang/test/Driver/freebsd.c
  llvm/lib/TargetParser/ARMTargetParser.cpp

Index: llvm/lib/TargetParser/ARMTargetParser.cpp
===
--- llvm/lib/TargetParser/ARMTargetParser.cpp
+++ llvm/lib/TargetParser/ARMTargetParser.cpp
@@ -523,7 +523,7 @@
   default:
 if (TT.isOSNetBSD())
   return "apcs-gnu";
-if (TT.isOSOpenBSD())
+if (TT.isOSFreeBSD() || TT.isOSOpenBSD())
   return "aapcs-linux";
 return "aapcs";
   }
Index: clang/test/Driver/freebsd.c
===
--- clang/test/Driver/freebsd.c
+++ clang/test/Driver/freebsd.c
@@ -146,9 +146,10 @@
 
 // RUN: %clang -### %s --target=arm-unknown-freebsd10.0 -no-integrated-as 2>&1 \
 // RUN:   | FileCheck --check-prefix=CHECK-ARM %s
-// CHECK-ARM: "-cc1"{{.*}}" "-exception-model=sjlj"
-// CHECK-ARM: as{{.*}}" "-mfpu=softvfp"{{.*}}"-matpcs"
-// CHECK-ARM-EABI-NOT: as{{.*}}" "-mfpu=vfp"
+// CHECK-ARM-NOT: "-cc1"{{.*}}" "-exception-model=sjlj"
+// CHECK-ARM: as{{.*}}" "-mfpu=softvfp"{{.*}}"-meabi=5"
+// CHECK-ARM-NOT: as{{.*}}" "-mfpu=vfp"
+// CHECK-ARM-NOT: as{{.*}}" "-matpcs"
 
 // RUN: %clang -### %s --target=arm-gnueabi-freebsd10.0 -no-integrated-as 2>&1 \
 // RUN:   | FileCheck --check-prefix=CHECK-ARM-EABI %s
Index: clang/test/Driver/arm-abi.c
===
--- clang/test/Driver/arm-abi.c
+++ clang/test/Driver/arm-abi.c
@@ -28,7 +28,9 @@
 // RUN: %clang -target arm--netbsd-eabihf %s -### -o %t.o 2>&1 \
 // RUN:   | FileCheck -check-prefix=CHECK-AAPCS %s
 
-// OpenBSD defaults to aapcs-linux
+// FreeBSD / OpenBSD default to aapcs-linux
+// RUN: %clang -target arm--freebsd- %s -### -o %t.o 2>&1 \
+// RUN:   | FileCheck -check-prefix=CHECK-AAPCS-LINUX %s
 // RUN: %clang -target arm--openbsd- %s -### -o %t.o 2>&1 \
 // RUN:   | FileCheck -check-prefix=CHECK-AAPCS-LINUX %s
 
Index: clang/lib/Driver/ToolChains/FreeBSD.h
===
--- clang/lib/Driver/ToolChains/FreeBSD.h
+++ clang/lib/Driver/ToolChains/FreeBSD.h
@@ -78,8 +78,6 @@
   void AddHIPIncludeArgs(const llvm::opt::ArgList ,
  llvm::opt::ArgStringList ) const override;
 
-  llvm::ExceptionHandling
-  GetExceptionModel(const llvm::opt::ArgList ) const override;
   UnwindTableLevel
   getDefaultUnwindTableLevel(const llvm::opt::ArgList ) const override;
   bool isPIEDefault(const llvm::opt::ArgList ) const override;
Index: clang/lib/Driver/ToolChains/FreeBSD.cpp
===
--- clang/lib/Driver/ToolChains/FreeBSD.cpp
+++ clang/lib/Driver/ToolChains/FreeBSD.cpp
@@ -85,16 +85,7 @@
 else
   CmdArgs.push_back("-mfpu=softvfp");
 
-switch (getToolChain().getTriple().getEnvironment()) {
-case llvm::Triple::GNUEABIHF:
-case llvm::Triple::GNUEABI:
-case llvm::Triple::EABI:
-  CmdArgs.push_back("-meabi=5");
-  break;
-
-default:
-  CmdArgs.push_back("-matpcs");
-}
+CmdArgs.push_back("-meabi=5");
 break;
   }
   case llvm::Triple::sparc:
@@ -467,21 +458,6 @@
 
 Tool *FreeBSD::buildLinker() const { return new tools::freebsd::Linker(*this); }
 
-llvm::ExceptionHandling FreeBSD::GetExceptionModel(const ArgList ) const {
-  // FreeBSD uses SjLj exceptions on ARM oabi.
-  switch (getTriple().getEnvironment()) {
-  case llvm::Triple::GNUEABIHF:
-  case llvm::Triple::GNUEABI:
-  case llvm::Triple::EABI:
-return llvm::ExceptionHandling::None;
-  default:
-if (getTriple().getArch() == llvm::Triple::arm ||
-getTriple().getArch() == llvm::Triple::thumb)
-  return llvm::ExceptionHandling::SjLj;
-return llvm::ExceptionHandling::None;
-  }
-}
-
 bool FreeBSD::HasNativeLLVMSupport() const { return true; }
 
 ToolChain::UnwindTableLevel
Index: clang/lib/Basic/Targets/ARM.cpp
===
--- clang/lib/Basic/Targets/ARM.cpp
+++ clang/lib/Basic/Targets/ARM.cpp
@@ -254,6 +254,7 @@
  const TargetOptions )
 : TargetInfo(Triple), FPMath(FP_Default), IsAAPCS(true), LDREX(0),
   HW_FP(0) {
+  bool IsFreeBSD = Triple.isOSFreeBSD();
   bool IsOpenBSD = Triple.isOSOpenBSD();
   bool IsNetBSD = Triple.isOSNetBSD();
 
@@ -321,7 +322,7 @@
 default:
   if (IsNetBSD)
 setABI("apcs-gnu");
-  else if (IsOpenBSD)
+  else if (IsFreeBSD || IsOpenBSD)
 setABI("aapcs-linux");
   else
 setABI("aapcs");
___

[PATCH] D144823: [Driver][FreeBSD] Simplify ARM handling

2023-02-26 Thread Brad Smith via Phabricator via cfe-commits
brad created this revision.
brad added reviewers: dim, emaste.
brad added a project: clang.
Herald added subscribers: hiraditya, kristof.beyls, krytarowski, arichardson.
Herald added a project: All.
brad requested review of this revision.
Herald added subscribers: llvm-commits, MaskRay.
Herald added a project: LLVM.

Since FreeBSD 8 / 9 support was dropped from the Driver there is room to 
simplify things with the ARM handling.

The exception model handling function can be removed.

EABI is now the default.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D144823

Files:
  clang/lib/Basic/Targets/ARM.cpp
  clang/lib/Driver/ToolChains/FreeBSD.cpp
  clang/test/Driver/arm-abi.c
  clang/test/Driver/freebsd.c
  llvm/lib/TargetParser/ARMTargetParser.cpp

Index: llvm/lib/TargetParser/ARMTargetParser.cpp
===
--- llvm/lib/TargetParser/ARMTargetParser.cpp
+++ llvm/lib/TargetParser/ARMTargetParser.cpp
@@ -523,7 +523,7 @@
   default:
 if (TT.isOSNetBSD())
   return "apcs-gnu";
-if (TT.isOSOpenBSD())
+if (TT.isOSFreeBSD() || TT.isOSOpenBSD())
   return "aapcs-linux";
 return "aapcs";
   }
Index: clang/test/Driver/freebsd.c
===
--- clang/test/Driver/freebsd.c
+++ clang/test/Driver/freebsd.c
@@ -146,9 +146,10 @@
 
 // RUN: %clang -### %s --target=arm-unknown-freebsd10.0 -no-integrated-as 2>&1 \
 // RUN:   | FileCheck --check-prefix=CHECK-ARM %s
-// CHECK-ARM: "-cc1"{{.*}}" "-exception-model=sjlj"
-// CHECK-ARM: as{{.*}}" "-mfpu=softvfp"{{.*}}"-matpcs"
-// CHECK-ARM-EABI-NOT: as{{.*}}" "-mfpu=vfp"
+// CHECK-ARM-NOT: "-cc1"{{.*}}" "-exception-model=sjlj"
+// CHECK-ARM: as{{.*}}" "-mfpu=softvfp"{{.*}}"-meabi=5"
+// CHECK-ARM-NOT: as{{.*}}" "-mfpu=vfp"
+// CHECK-ARM-NOT: as{{.*}}" "-matpcs"
 
 // RUN: %clang -### %s --target=arm-gnueabi-freebsd10.0 -no-integrated-as 2>&1 \
 // RUN:   | FileCheck --check-prefix=CHECK-ARM-EABI %s
Index: clang/test/Driver/arm-abi.c
===
--- clang/test/Driver/arm-abi.c
+++ clang/test/Driver/arm-abi.c
@@ -28,7 +28,9 @@
 // RUN: %clang -target arm--netbsd-eabihf %s -### -o %t.o 2>&1 \
 // RUN:   | FileCheck -check-prefix=CHECK-AAPCS %s
 
-// OpenBSD defaults to aapcs-linux
+// FreeBSD / OpenBSD default to aapcs-linux
+// RUN: %clang -target arm--freebsd- %s -### -o %t.o 2>&1 \
+// RUN:   | FileCheck -check-prefix=CHECK-AAPCS-LINUX %s
 // RUN: %clang -target arm--openbsd- %s -### -o %t.o 2>&1 \
 // RUN:   | FileCheck -check-prefix=CHECK-AAPCS-LINUX %s
 
Index: clang/lib/Driver/ToolChains/FreeBSD.cpp
===
--- clang/lib/Driver/ToolChains/FreeBSD.cpp
+++ clang/lib/Driver/ToolChains/FreeBSD.cpp
@@ -85,16 +85,7 @@
 else
   CmdArgs.push_back("-mfpu=softvfp");
 
-switch (getToolChain().getTriple().getEnvironment()) {
-case llvm::Triple::GNUEABIHF:
-case llvm::Triple::GNUEABI:
-case llvm::Triple::EABI:
-  CmdArgs.push_back("-meabi=5");
-  break;
-
-default:
-  CmdArgs.push_back("-matpcs");
-}
+CmdArgs.push_back("-meabi=5");
 break;
   }
   case llvm::Triple::sparc:
@@ -467,21 +458,6 @@
 
 Tool *FreeBSD::buildLinker() const { return new tools::freebsd::Linker(*this); }
 
-llvm::ExceptionHandling FreeBSD::GetExceptionModel(const ArgList ) const {
-  // FreeBSD uses SjLj exceptions on ARM oabi.
-  switch (getTriple().getEnvironment()) {
-  case llvm::Triple::GNUEABIHF:
-  case llvm::Triple::GNUEABI:
-  case llvm::Triple::EABI:
-return llvm::ExceptionHandling::None;
-  default:
-if (getTriple().getArch() == llvm::Triple::arm ||
-getTriple().getArch() == llvm::Triple::thumb)
-  return llvm::ExceptionHandling::SjLj;
-return llvm::ExceptionHandling::None;
-  }
-}
-
 bool FreeBSD::HasNativeLLVMSupport() const { return true; }
 
 ToolChain::UnwindTableLevel
Index: clang/lib/Basic/Targets/ARM.cpp
===
--- clang/lib/Basic/Targets/ARM.cpp
+++ clang/lib/Basic/Targets/ARM.cpp
@@ -254,6 +254,7 @@
  const TargetOptions )
 : TargetInfo(Triple), FPMath(FP_Default), IsAAPCS(true), LDREX(0),
   HW_FP(0) {
+  bool IsFreeBSD = Triple.isOSFreeBSD();
   bool IsOpenBSD = Triple.isOSOpenBSD();
   bool IsNetBSD = Triple.isOSNetBSD();
 
@@ -321,7 +322,7 @@
 default:
   if (IsNetBSD)
 setABI("apcs-gnu");
-  else if (IsOpenBSD)
+  else if (IsFreeBSD || IsOpenBSD)
 setABI("aapcs-linux");
   else
 setABI("aapcs");
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits