r332635 - [sanitizer] Don't add --export-dynamic for Myriad

2018-05-17 Thread Walter Lee via cfe-commits
Author: waltl
Date: Thu May 17 11:04:39 2018
New Revision: 332635

URL: http://llvm.org/viewvc/llvm-project?rev=332635&view=rev
Log:
[sanitizer] Don't add --export-dynamic for Myriad

This is to work around a bug in some versions of gnu ld, where
--export-dynamic implies -shared even if -static is explicitly given.
Myriad supports static linking only, so --export-dynamic is never
needed.

Differential Revision: https://reviews.llvm.org/D46452

Modified:
cfe/trunk/lib/Driver/ToolChains/CommonArgs.cpp

Modified: cfe/trunk/lib/Driver/ToolChains/CommonArgs.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/ToolChains/CommonArgs.cpp?rev=332635&r1=332634&r2=332635&view=diff
==
--- cfe/trunk/lib/Driver/ToolChains/CommonArgs.cpp (original)
+++ cfe/trunk/lib/Driver/ToolChains/CommonArgs.cpp Thu May 17 11:04:39 2018
@@ -538,6 +538,11 @@ static bool addSanitizerDynamicList(cons
   // the option, so don't try to pass it.
   if (TC.getTriple().getOS() == llvm::Triple::Solaris)
 return true;
+  // Myriad is static linking only.  Furthermore, some versions of its
+  // linker have the bug where --export-dynamic overrides -static, so
+  // don't use --export-dynamic on that platform.
+  if (TC.getTriple().getVendor() == llvm::Triple::Myriad)
+return true;
   SmallString<128> SanRT(TC.getCompilerRT(Args, Sanitizer));
   if (llvm::sys::fs::exists(SanRT + ".syms")) {
 CmdArgs.push_back(Args.MakeArgString("--dynamic-list=" + SanRT + ".syms"));


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


r314706 - Add support for Myriad ma2x8x series of CPUs

2017-10-02 Thread Walter Lee via cfe-commits
Author: waltl
Date: Mon Oct  2 11:50:57 2017
New Revision: 314706

URL: http://llvm.org/viewvc/llvm-project?rev=314706&view=rev
Log:
Add support for Myriad ma2x8x series of CPUs

Summary:
Also:
- Add support for some older Myriad CPUs that were missing.
- Fix some incorrect compiler defines for exisitng CPUs.

Reviewers: jyknight

Subscribers: fedor.sergeev

Differential Revision: https://reviews.llvm.org/D37551

Modified:
cfe/trunk/lib/Basic/Targets/Sparc.cpp
cfe/trunk/lib/Basic/Targets/Sparc.h
cfe/trunk/test/Preprocessor/predefined-arch-macros.c

Modified: cfe/trunk/lib/Basic/Targets/Sparc.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Basic/Targets/Sparc.cpp?rev=314706&r1=314705&r2=314706&view=diff
==
--- cfe/trunk/lib/Basic/Targets/Sparc.cpp (original)
+++ cfe/trunk/lib/Basic/Targets/Sparc.cpp Mon Oct  2 11:50:57 2017
@@ -70,12 +70,21 @@ SparcTargetInfo::CPUKind SparcTargetInfo
   .Case("niagara4", CK_NIAGARA4)
   .Case("ma2100", CK_MYRIAD2100)
   .Case("ma2150", CK_MYRIAD2150)
+  .Case("ma2155", CK_MYRIAD2155)
   .Case("ma2450", CK_MYRIAD2450)
+  .Case("ma2455", CK_MYRIAD2455)
+  .Case("ma2x5x", CK_MYRIAD2x5x)
+  .Case("ma2080", CK_MYRIAD2080)
+  .Case("ma2085", CK_MYRIAD2085)
+  .Case("ma2480", CK_MYRIAD2480)
+  .Case("ma2485", CK_MYRIAD2485)
+  .Case("ma2x8x", CK_MYRIAD2x8x)
   // FIXME: the myriad2[.n] spellings are obsolete,
   // but a grace period is needed to allow updating dependent builds.
-  .Case("myriad2", CK_MYRIAD2100)
+  .Case("myriad2", CK_MYRIAD2x5x)
   .Case("myriad2.1", CK_MYRIAD2100)
-  .Case("myriad2.2", CK_MYRIAD2150)
+  .Case("myriad2.2", CK_MYRIAD2x5x)
+  .Case("myriad2.3", CK_MYRIAD2x8x)
   .Case("leon2", CK_LEON2)
   .Case("at697e", CK_LEON2_AT697E)
   .Case("at697f", CK_LEON2_AT697F)
@@ -118,21 +127,57 @@ void SparcV8TargetInfo::getTargetDefines
 Builder.defineMacro("__sparc_v8__");
 Builder.defineMacro("__leon__");
 switch (CPU) {
+case CK_MYRIAD2100:
+  MyriadArchValue = "__ma2100";
+  Myriad2Value = "1";
+  break;
 case CK_MYRIAD2150:
   MyriadArchValue = "__ma2150";
   Myriad2Value = "2";
   break;
+case CK_MYRIAD2155:
+  MyriadArchValue = "__ma2155";
+  Myriad2Value = "2";
+  break;
 case CK_MYRIAD2450:
   MyriadArchValue = "__ma2450";
   Myriad2Value = "2";
   break;
+case CK_MYRIAD2455:
+  MyriadArchValue = "__ma2455";
+  Myriad2Value = "2";
+  break;
+case CK_MYRIAD2x5x:
+  Myriad2Value = "2";
+  break;
+case CK_MYRIAD2080:
+  MyriadArchValue = "__ma2080";
+  Myriad2Value = "3";
+  break;
+case CK_MYRIAD2085:
+  MyriadArchValue = "__ma2085";
+  Myriad2Value = "3";
+  break;
+case CK_MYRIAD2480:
+  MyriadArchValue = "__ma2480";
+  Myriad2Value = "3";
+  break;
+case CK_MYRIAD2485:
+  MyriadArchValue = "__ma2485";
+  Myriad2Value = "3";
+  break;
+case CK_MYRIAD2x8x:
+  Myriad2Value = "3";
+  break;
 default:
   MyriadArchValue = "__ma2100";
   Myriad2Value = "1";
   break;
 }
-Builder.defineMacro(MyriadArchValue, "1");
-Builder.defineMacro(MyriadArchValue + "__", "1");
+if (!MyriadArchValue.empty()) {
+  Builder.defineMacro(MyriadArchValue, "1");
+  Builder.defineMacro(MyriadArchValue + "__", "1");
+}
 Builder.defineMacro("__myriad2__", Myriad2Value);
 Builder.defineMacro("__myriad2", Myriad2Value);
   }

Modified: cfe/trunk/lib/Basic/Targets/Sparc.h
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Basic/Targets/Sparc.h?rev=314706&r1=314705&r2=314706&view=diff
==
--- cfe/trunk/lib/Basic/Targets/Sparc.h (original)
+++ cfe/trunk/lib/Basic/Targets/Sparc.h Mon Oct  2 11:50:57 2017
@@ -107,7 +107,15 @@ public:
 CK_NIAGARA4,
 CK_MYRIAD2100,
 CK_MYRIAD2150,
+CK_MYRIAD2155,
 CK_MYRIAD2450,
+CK_MYRIAD2455,
+CK_MYRIAD2x5x,
+CK_MYRIAD2080,
+CK_MYRIAD2085,
+CK_MYRIAD2480,
+CK_MYRIAD2485,
+CK_MYRIAD2x8x,
 CK_LEON2,
 CK_LEON2_AT697E,
 CK_LEON2_AT697F,
@@ -136,7 +144,15 @@ public:
 case CK_TSC701:
 case CK_MYRIAD2100:
 case CK_MYRIAD2150:
+case CK_MYRIAD2155:
 case CK_MYRIAD2450:
+case CK_MYRIAD2455:
+case CK_MYRIAD2x5x:
+case CK_MYRIAD2080:
+case CK_MYRIAD2085:
+case CK_MYRIAD2480:
+case CK_MYRIAD2485:
+case CK_MYRIAD2x8x:
 case CK_LEON2:
 case CK_LEON2_AT697E:
 case CK_LEON2_AT697F:

Modified: cfe/trunk/test/Preprocessor/predefined-arch-macros.c
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Preprocessor/predefined-arch-macros.c?rev=314706&r1=314705&r2=314706&view=diff
==
--- cfe/

r324420 - [Myriad] Define __ma2x5x and __ma2x8x

2018-02-06 Thread Walter Lee via cfe-commits
Author: waltl
Date: Tue Feb  6 14:39:47 2018
New Revision: 324420

URL: http://llvm.org/viewvc/llvm-project?rev=324420&view=rev
Log:
[Myriad] Define __ma2x5x and __ma2x8x

Summary: Add architecture defines for ma2x5x and ma2x8x.

Reviewers: jyknight

Subscribers: fedor.sergeev, MartinO

Differential Revision: https://reviews.llvm.org/D42882

Modified:
cfe/trunk/lib/Basic/Targets/Sparc.cpp
cfe/trunk/test/Preprocessor/predefined-arch-macros.c

Modified: cfe/trunk/lib/Basic/Targets/Sparc.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Basic/Targets/Sparc.cpp?rev=324420&r1=324419&r2=324420&view=diff
==
--- cfe/trunk/lib/Basic/Targets/Sparc.cpp (original)
+++ cfe/trunk/lib/Basic/Targets/Sparc.cpp Tue Feb  6 14:39:47 2018
@@ -178,6 +178,13 @@ void SparcV8TargetInfo::getTargetDefines
   Builder.defineMacro(MyriadArchValue, "1");
   Builder.defineMacro(MyriadArchValue + "__", "1");
 }
+if (Myriad2Value == "2") {
+  Builder.defineMacro("__ma2x5x", "1");
+  Builder.defineMacro("__ma2x5x__", "1");
+} else if (Myriad2Value == "3") {
+  Builder.defineMacro("__ma2x8x", "1");
+  Builder.defineMacro("__ma2x8x__", "1");
+}
 Builder.defineMacro("__myriad2__", Myriad2Value);
 Builder.defineMacro("__myriad2", Myriad2Value);
   }

Modified: cfe/trunk/test/Preprocessor/predefined-arch-macros.c
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Preprocessor/predefined-arch-macros.c?rev=324420&r1=324419&r2=324420&view=diff
==
--- cfe/trunk/test/Preprocessor/predefined-arch-macros.c (original)
+++ cfe/trunk/test/Preprocessor/predefined-arch-macros.c Tue Feb  6 14:39:47 
2018
@@ -2401,8 +2401,12 @@
 // CHECK_MYRIAD2: #define __leon__ 1
 // CHECK_MYRIAD2-1: #define __myriad2 1
 // CHECK_MYRIAD2-1: #define __myriad2__ 1
+// CHECK_MYRIAD2-2: #define __ma2x5x 1
+// CHECK_MYRIAD2-2: #define __ma2x5x__ 1
 // CHECK_MYRIAD2-2: #define __myriad2 2
 // CHECK_MYRIAD2-2: #define __myriad2__ 2
+// CHECK_MYRIAD2-3: #define __ma2x8x 1
+// CHECK_MYRIAD2-3: #define __ma2x8x__ 1
 // CHECK_MYRIAD2-3: #define __myriad2 3
 // CHECK_MYRIAD2-3: #define __myriad2__ 3
 // CHECK_SPARCEL: #define __sparc 1


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


r321080 - Rename sparc-myriad-elf triplet to sparc-myriad-rtems

2017-12-19 Thread Walter Lee via cfe-commits
Author: waltl
Date: Tue Dec 19 08:19:11 2017
New Revision: 321080

URL: http://llvm.org/viewvc/llvm-project?rev=321080&view=rev
Log:
Rename sparc-myriad-elf triplet to sparc-myriad-rtems

Summary: This is to be consistent with latest Movidius MDK releases.
Also, don't inherit any gcc paths for shave triple.

Reviewers: jyknight

Subscribers: emaste, fedor.sergeev

Differential Revision: https://reviews.llvm.org/D41295

Added:
cfe/trunk/test/Driver/Inputs/basic_myriad_tree/lib/gcc/sparc-myriad-rtems/

cfe/trunk/test/Driver/Inputs/basic_myriad_tree/lib/gcc/sparc-myriad-rtems/6.3.0/
cfe/trunk/test/Driver/Inputs/basic_myriad_tree/sparc-myriad-rtems/
cfe/trunk/test/Driver/Inputs/basic_myriad_tree/sparc-myriad-rtems/include/

cfe/trunk/test/Driver/Inputs/basic_myriad_tree/sparc-myriad-rtems/include/c++/

cfe/trunk/test/Driver/Inputs/basic_myriad_tree/sparc-myriad-rtems/include/c++/6.3.0/

cfe/trunk/test/Driver/Inputs/basic_myriad_tree/sparc-myriad-rtems/include/c++/6.3.0/.keep
cfe/trunk/test/Driver/Inputs/basic_myriad_tree/sparc-myriad-rtems/lib/
Removed:
cfe/trunk/test/Driver/Inputs/basic_myriad_tree/lib/gcc/sparc-myriad-elf/
cfe/trunk/test/Driver/Inputs/basic_myriad_tree/sparc-myriad-elf/
Modified:
cfe/trunk/lib/Driver/ToolChains/Myriad.cpp
cfe/trunk/test/Driver/myriad-toolchain.c

Modified: cfe/trunk/lib/Driver/ToolChains/Myriad.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/ToolChains/Myriad.cpp?rev=321080&r1=321079&r2=321080&view=diff
==
--- cfe/trunk/lib/Driver/ToolChains/Myriad.cpp (original)
+++ cfe/trunk/lib/Driver/ToolChains/Myriad.cpp Tue Dec 19 08:19:11 2017
@@ -199,7 +199,7 @@ void tools::Myriad::Linker::ConstructJob
   }
 
   std::string Exec =
-  Args.MakeArgString(TC.GetProgramPath("sparc-myriad-elf-ld"));
+  Args.MakeArgString(TC.GetProgramPath("sparc-myriad-rtems-ld"));
   C.addCommand(llvm::make_unique(JA, *this, Args.MakeArgString(Exec),
   CmdArgs, Inputs));
 }
@@ -218,10 +218,11 @@ MyriadToolChain::MyriadToolChain(const D
 D.Diag(clang::diag::err_target_unsupported_arch)
 << Triple.getArchName() << "myriad";
 LLVM_FALLTHROUGH;
+  case llvm::Triple::shave:
+return;
   case llvm::Triple::sparc:
   case llvm::Triple::sparcel:
-  case llvm::Triple::shave:
-GCCInstallation.init(Triple, Args, {"sparc-myriad-elf"});
+GCCInstallation.init(Triple, Args, {"sparc-myriad-rtems"});
   }
 
   if (GCCInstallation.isValid()) {
@@ -231,7 +232,7 @@ MyriadToolChain::MyriadToolChain(const D
 addPathIfExists(D, CompilerSupportDir, getFilePaths());
   }
   // libstd++ and libc++ must both be found in this one place.
-  addPathIfExists(D, D.Dir + "/../sparc-myriad-elf/lib", getFilePaths());
+  addPathIfExists(D, D.Dir + "/../sparc-myriad-rtems/lib", getFilePaths());
 }
 
 MyriadToolChain::~MyriadToolChain() {}

Added: 
cfe/trunk/test/Driver/Inputs/basic_myriad_tree/sparc-myriad-rtems/include/c++/6.3.0/.keep
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/Inputs/basic_myriad_tree/sparc-myriad-rtems/include/c%2B%2B/6.3.0/.keep?rev=321080&view=auto
==
(empty)

Modified: cfe/trunk/test/Driver/myriad-toolchain.c
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/myriad-toolchain.c?rev=321080&r1=321079&r2=321080&view=diff
==
--- cfe/trunk/test/Driver/myriad-toolchain.c (original)
+++ cfe/trunk/test/Driver/myriad-toolchain.c Tue Dec 19 08:19:11 2017
@@ -1,19 +1,19 @@
-// RUN: %clang -no-canonical-prefixes -### -target sparc-myriad-rtems-elf %s \
+// RUN: %clang -no-canonical-prefixes -### -target sparc-myriad-rtems %s \
 // RUN: -ccc-install-dir %S/Inputs/basic_myriad_tree/bin \
 // RUN: --gcc-toolchain=%S/Inputs/basic_myriad_tree 2>&1 | FileCheck %s 
-check-prefix=LINK_WITH_RTEMS
 // LINK_WITH_RTEMS: Inputs{{.*}}crti.o
 // LINK_WITH_RTEMS: Inputs{{.*}}crtbegin.o
-// LINK_WITH_RTEMS: 
"-L{{.*}}Inputs/basic_myriad_tree/lib/gcc/sparc-myriad-elf/4.8.2"
-// LINK_WITH_RTEMS: 
"-L{{.*}}Inputs/basic_myriad_tree/bin/../sparc-myriad-elf/lib"
+// LINK_WITH_RTEMS: 
"-L{{.*}}Inputs/basic_myriad_tree/lib/gcc/sparc-myriad-rtems/6.3.0"
+// LINK_WITH_RTEMS: 
"-L{{.*}}Inputs/basic_myriad_tree/bin/../sparc-myriad-rtems/lib"
 // LINK_WITH_RTEMS: "--start-group" "-lc" "-lgcc" "-lrtemscpu" "-lrtemsbsp" 
"--end-group"
 // LINK_WITH_RTEMS: Inputs{{.*}}crtend.o
 // LINK_WITH_RTEMS: Inputs{{.*}}crtn.o
 
-// RUN: %clang -c -no-canonical-prefixes -### -target sparc-myriad-rtems-elf 
-x c++ %s \
+// RUN: %clang -c -no-canonical-prefixes -### -target sparc-myriad-rtems -x 
c++ %s \
 // RUN: -stdlib=libstdc++ --gcc-toolchain=%S/Inputs/basic_myriad_tree 2>&1 | 
FileCheck %s -check-prefix=COMPILE_CXX
-// COMPILE_CXX: "-internal-isystem" 
"{{.*}}/Inpu

r321082 - Add renamed .o files that were omitted by "git llvm push" command

2017-12-19 Thread Walter Lee via cfe-commits
Author: waltl
Date: Tue Dec 19 08:34:13 2017
New Revision: 321082

URL: http://llvm.org/viewvc/llvm-project?rev=321082&view=rev
Log:
Add renamed .o files that were omitted by "git llvm push" command

Original commit is at: https://reviews.llvm.org/D41295.


Added:

cfe/trunk/test/Driver/Inputs/basic_myriad_tree/lib/gcc/sparc-myriad-rtems/6.3.0/crtbegin.o

cfe/trunk/test/Driver/Inputs/basic_myriad_tree/lib/gcc/sparc-myriad-rtems/6.3.0/crtend.o

cfe/trunk/test/Driver/Inputs/basic_myriad_tree/lib/gcc/sparc-myriad-rtems/6.3.0/crti.o

cfe/trunk/test/Driver/Inputs/basic_myriad_tree/lib/gcc/sparc-myriad-rtems/6.3.0/crtn.o
cfe/trunk/test/Driver/Inputs/basic_myriad_tree/sparc-myriad-rtems/lib/crt0.o

Added: 
cfe/trunk/test/Driver/Inputs/basic_myriad_tree/lib/gcc/sparc-myriad-rtems/6.3.0/crtbegin.o
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/Inputs/basic_myriad_tree/lib/gcc/sparc-myriad-rtems/6.3.0/crtbegin.o?rev=321082&view=auto
==
(empty)

Added: 
cfe/trunk/test/Driver/Inputs/basic_myriad_tree/lib/gcc/sparc-myriad-rtems/6.3.0/crtend.o
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/Inputs/basic_myriad_tree/lib/gcc/sparc-myriad-rtems/6.3.0/crtend.o?rev=321082&view=auto
==
(empty)

Added: 
cfe/trunk/test/Driver/Inputs/basic_myriad_tree/lib/gcc/sparc-myriad-rtems/6.3.0/crti.o
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/Inputs/basic_myriad_tree/lib/gcc/sparc-myriad-rtems/6.3.0/crti.o?rev=321082&view=auto
==
(empty)

Added: 
cfe/trunk/test/Driver/Inputs/basic_myriad_tree/lib/gcc/sparc-myriad-rtems/6.3.0/crtn.o
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/Inputs/basic_myriad_tree/lib/gcc/sparc-myriad-rtems/6.3.0/crtn.o?rev=321082&view=auto
==
(empty)

Added: 
cfe/trunk/test/Driver/Inputs/basic_myriad_tree/sparc-myriad-rtems/lib/crt0.o
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/Inputs/basic_myriad_tree/sparc-myriad-rtems/lib/crt0.o?rev=321082&view=auto
==
(empty)


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


r322023 - [Myriad] Remove invalidated -elf flag for MoviAsm

2018-01-08 Thread Walter Lee via cfe-commits
Author: waltl
Date: Mon Jan  8 12:36:08 2018
New Revision: 322023

URL: http://llvm.org/viewvc/llvm-project?rev=322023&view=rev
Log:
[Myriad] Remove invalidated -elf flag for MoviAsm

Summary:
The flag has been deprecated, and is becoming invalid in the latest
MDK.

Reviewers: jyknight

Subscribers: cfe-commits

Differential Revision: https://reviews.llvm.org/D41713

Modified:
cfe/trunk/lib/Driver/ToolChains/Myriad.cpp
cfe/trunk/test/Driver/myriad-toolchain.c

Modified: cfe/trunk/lib/Driver/ToolChains/Myriad.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/ToolChains/Myriad.cpp?rev=322023&r1=322022&r2=322023&view=diff
==
--- cfe/trunk/lib/Driver/ToolChains/Myriad.cpp (original)
+++ cfe/trunk/lib/Driver/ToolChains/Myriad.cpp Mon Jan  8 12:36:08 2018
@@ -107,7 +107,6 @@ void tools::SHAVE::Assembler::ConstructJ
 CmdArgs.push_back(
 Args.MakeArgString(std::string("-i:") + A->getValue(0)));
   }
-  CmdArgs.push_back("-elf"); // Output format.
   CmdArgs.push_back(II.getFilename());
   CmdArgs.push_back(
   Args.MakeArgString(std::string("-o:") + Output.getFilename()));

Modified: cfe/trunk/test/Driver/myriad-toolchain.c
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/myriad-toolchain.c?rev=322023&r1=322022&r2=322023&view=diff
==
--- cfe/trunk/test/Driver/myriad-toolchain.c (original)
+++ cfe/trunk/test/Driver/myriad-toolchain.c Mon Jan  8 12:36:08 2018
@@ -41,7 +41,7 @@
 // RUN:   | FileCheck %s -check-prefix=MOVICOMPILE
 // MOVICOMPILE: moviCompile{{(.exe)?}}" "-S" "-fno-exceptions" "-DMYRIAD2" 
"-mcpu=myriad2.2" "-isystem" "somewhere" "-I" "common"
 // MOVICOMPILE: moviAsm{{(.exe)?}}" "-no6thSlotCompression" "-cv:myriad2.2" 
"-noSPrefixing" "-a"
-// MOVICOMPILE: "-yippee" "-i:somewhere" "-i:common" "-elf"
+// MOVICOMPILE: "-yippee" "-i:somewhere" "-i:common"
 
 // RUN: %clang -target shave-myriad -c -### %s -DEFINE_ME -UNDEFINE_ME 2>&1 \
 // RUN:   | FileCheck %s -check-prefix=DEFINES


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


[clang] Add tests for driver to propagate module map flags even without -fmod… (PR #75827)

2023-12-18 Thread Walter Lee via cfe-commits

https://github.com/googlewalt created 
https://github.com/llvm/llvm-project/pull/75827

…ules

We use this to verify properties of our build graph, even when modules are off. 
 Xcode 14.3.1 seems to have dropped these flags so we are creating a unit test 
to reproduce the issue.

>From 0e83c457b51aff2f691da15850e8ee82f971a7f4 Mon Sep 17 00:00:00 2001
From: Walter Lee 
Date: Mon, 18 Dec 2023 11:41:43 -0500
Subject: [PATCH] Add tests for driver to propagate module map flags even
 without -fmodules

We use this to verify properties of our build graph, even when modules
are off.  Xcode 14.3.1 seems to have dropped these flags so we are
creating a unit test to reproduce the issue.
---
 clang/test/Driver/modules.m | 8 
 1 file changed, 8 insertions(+)

diff --git a/clang/test/Driver/modules.m b/clang/test/Driver/modules.m
index 9eb3569805569a..20bbcf40512300 100644
--- a/clang/test/Driver/modules.m
+++ b/clang/test/Driver/modules.m
@@ -57,6 +57,14 @@
 // CHECK-MODULE-MAP-FILES: "-fmodule-map-file=foo.map"
 // CHECK-MODULE-MAP-FILES: "-fmodule-map-file=bar.map"
 
+// RUN: %clang -fno-modules -fmodule-name=foo -c -### %s 2>&1 | FileCheck 
-check-prefix=CHECK-PROPAGATE-MODULE-NAME %s
+//
+// CHECK-PROPAGATE-MODULE-NAME: -fmodule-name=foo
+
+// RUN: %clang -fno-modules -fmodule-map-file=foo.map -c -### %s 2>&1 | 
FileCheck -check-prefix=CHECK-PROPAGATE-MODULE-MAPS %s
+//
+// CHECK-PROPAGATE-MODULE-MAPS: -fmodule-map-file=foo.map
+
 // RUN: %clang -fmodules -fbuiltin-module-map -### %s 2>&1 | FileCheck 
-check-prefix=CHECK-BUILTIN-MODULE-MAP %s
 // CHECK-BUILTIN-MODULE-MAP: "-fmodules"
 // CHECK-BUILTIN-MODULE-MAP: 
"-fmodule-map-file={{.*}}include{{/|}}module.modulemap"

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


[clang] Add tests for driver to propagate module map flags even without -fmod… (PR #75827)

2023-12-19 Thread Walter Lee via cfe-commits

https://github.com/googlewalt updated 
https://github.com/llvm/llvm-project/pull/75827

>From 303bcd180e438abd570bd9abd55582959d313ae3 Mon Sep 17 00:00:00 2001
From: Walter Lee 
Date: Mon, 18 Dec 2023 11:41:43 -0500
Subject: [PATCH] Add tests for driver to propagate module map flags when
 -fno-modules

We rely on this behavior for layering check.  Xcode 14.3.1 seems to
have dropped these flags so we are creating a unit test to reproduce
the issue.
---
 clang/test/Driver/modules.m | 10 ++
 1 file changed, 10 insertions(+)

diff --git a/clang/test/Driver/modules.m b/clang/test/Driver/modules.m
index 9eb3569805569a..d88cac2e27c539 100644
--- a/clang/test/Driver/modules.m
+++ b/clang/test/Driver/modules.m
@@ -57,6 +57,16 @@
 // CHECK-MODULE-MAP-FILES: "-fmodule-map-file=foo.map"
 // CHECK-MODULE-MAP-FILES: "-fmodule-map-file=bar.map"
 
+// Verify that the driver propagates -fmodule-name and -fmodule-map-file flags 
even with
+// -fno-modules.  We rely on this behavior for layering check.
+// RUN: %clang -fno-modules -fmodule-name=foo -c -### %s 2>&1 | FileCheck 
-check-prefix=CHECK-PROPAGATE-MODULE-NAME %s
+//
+// CHECK-PROPAGATE-MODULE-NAME: -fmodule-name=foo
+
+// RUN: %clang -fno-modules -fmodule-map-file=foo.map -c -### %s 2>&1 | 
FileCheck -check-prefix=CHECK-PROPAGATE-MODULE-MAPS %s
+//
+// CHECK-PROPAGATE-MODULE-MAPS: -fmodule-map-file=foo.map
+
 // RUN: %clang -fmodules -fbuiltin-module-map -### %s 2>&1 | FileCheck 
-check-prefix=CHECK-BUILTIN-MODULE-MAP %s
 // CHECK-BUILTIN-MODULE-MAP: "-fmodules"
 // CHECK-BUILTIN-MODULE-MAP: 
"-fmodule-map-file={{.*}}include{{/|}}module.modulemap"

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


[clang] Add tests for driver to propagate module map flags even without -fmod… (PR #75827)

2023-12-19 Thread Walter Lee via cfe-commits

https://github.com/googlewalt updated 
https://github.com/llvm/llvm-project/pull/75827

>From 308e72ed9735f739a0993062415301fea0f47b77 Mon Sep 17 00:00:00 2001
From: Walter Lee 
Date: Mon, 18 Dec 2023 11:41:43 -0500
Subject: [PATCH] Add tests for driver to propagate module map flags when
 -fno-modules

We rely on this behavior for layering check.  Xcode 14.3.1 seems to
have dropped these flags so we are creating a unit test to reproduce
the issue.
---
 clang/test/Driver/modules.m | 8 
 1 file changed, 8 insertions(+)

diff --git a/clang/test/Driver/modules.m b/clang/test/Driver/modules.m
index 9eb3569805569a..7b215bb6d870d6 100644
--- a/clang/test/Driver/modules.m
+++ b/clang/test/Driver/modules.m
@@ -57,6 +57,14 @@
 // CHECK-MODULE-MAP-FILES: "-fmodule-map-file=foo.map"
 // CHECK-MODULE-MAP-FILES: "-fmodule-map-file=bar.map"
 
+// Verify that the driver propagates -fmodule-name and -fmodule-map-file flags 
even with
+// -fno-modules.  We rely on this behavior for layering check.
+// RUN: %clang -fno-modules -fmodule-name=foo -c -### %s 2>&1 | FileCheck 
-check-prefix=CHECK-PROPAGATE-MODULE-NAME %s
+// CHECK-PROPAGATE-MODULE-NAME: -fmodule-name=foo
+
+// RUN: %clang -fno-modules -fmodule-map-file=foo.map -c -### %s 2>&1 | 
FileCheck -check-prefix=CHECK-PROPAGATE-MODULE-MAPS %s
+// CHECK-PROPAGATE-MODULE-MAPS: -fmodule-map-file=foo.map
+
 // RUN: %clang -fmodules -fbuiltin-module-map -### %s 2>&1 | FileCheck 
-check-prefix=CHECK-BUILTIN-MODULE-MAP %s
 // CHECK-BUILTIN-MODULE-MAP: "-fmodules"
 // CHECK-BUILTIN-MODULE-MAP: 
"-fmodule-map-file={{.*}}include{{/|}}module.modulemap"

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


[clang] Add tests for driver to propagate module map flags even without -fmod… (PR #75827)

2023-12-19 Thread Walter Lee via cfe-commits


@@ -57,6 +57,14 @@
 // CHECK-MODULE-MAP-FILES: "-fmodule-map-file=foo.map"
 // CHECK-MODULE-MAP-FILES: "-fmodule-map-file=bar.map"
 
+// RUN: %clang -fno-modules -fmodule-name=foo -c -### %s 2>&1 | FileCheck 
-check-prefix=CHECK-PROPAGATE-MODULE-NAME %s

googlewalt wrote:

Done.

https://github.com/llvm/llvm-project/pull/75827
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[llvm] [clang] [clang-tools-extra] [compiler-rt] [libc] [flang] [libcxx] Add tests for driver to propagate module map flags even without -fmod… (PR #75827)

2023-12-19 Thread Walter Lee via cfe-commits

https://github.com/googlewalt updated 
https://github.com/llvm/llvm-project/pull/75827

>From 308e72ed9735f739a0993062415301fea0f47b77 Mon Sep 17 00:00:00 2001
From: Walter Lee 
Date: Mon, 18 Dec 2023 11:41:43 -0500
Subject: [PATCH] Add tests for driver to propagate module map flags when
 -fno-modules

We rely on this behavior for layering check.  Xcode 14.3.1 seems to
have dropped these flags so we are creating a unit test to reproduce
the issue.
---
 clang/test/Driver/modules.m | 8 
 1 file changed, 8 insertions(+)

diff --git a/clang/test/Driver/modules.m b/clang/test/Driver/modules.m
index 9eb3569805569a..7b215bb6d870d6 100644
--- a/clang/test/Driver/modules.m
+++ b/clang/test/Driver/modules.m
@@ -57,6 +57,14 @@
 // CHECK-MODULE-MAP-FILES: "-fmodule-map-file=foo.map"
 // CHECK-MODULE-MAP-FILES: "-fmodule-map-file=bar.map"
 
+// Verify that the driver propagates -fmodule-name and -fmodule-map-file flags 
even with
+// -fno-modules.  We rely on this behavior for layering check.
+// RUN: %clang -fno-modules -fmodule-name=foo -c -### %s 2>&1 | FileCheck 
-check-prefix=CHECK-PROPAGATE-MODULE-NAME %s
+// CHECK-PROPAGATE-MODULE-NAME: -fmodule-name=foo
+
+// RUN: %clang -fno-modules -fmodule-map-file=foo.map -c -### %s 2>&1 | 
FileCheck -check-prefix=CHECK-PROPAGATE-MODULE-MAPS %s
+// CHECK-PROPAGATE-MODULE-MAPS: -fmodule-map-file=foo.map
+
 // RUN: %clang -fmodules -fbuiltin-module-map -### %s 2>&1 | FileCheck 
-check-prefix=CHECK-BUILTIN-MODULE-MAP %s
 // CHECK-BUILTIN-MODULE-MAP: "-fmodules"
 // CHECK-BUILTIN-MODULE-MAP: 
"-fmodule-map-file={{.*}}include{{/|}}module.modulemap"

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


[clang] Add tests for driver to propagate module map flags even without -fmod… (PR #75827)

2023-12-19 Thread Walter Lee via cfe-commits

https://github.com/googlewalt updated 
https://github.com/llvm/llvm-project/pull/75827

>From 308e72ed9735f739a0993062415301fea0f47b77 Mon Sep 17 00:00:00 2001
From: Walter Lee 
Date: Mon, 18 Dec 2023 11:41:43 -0500
Subject: [PATCH] Add tests for driver to propagate module map flags when
 -fno-modules

We rely on this behavior for layering check.  Xcode 14.3.1 seems to
have dropped these flags so we are creating a unit test to reproduce
the issue.
---
 clang/test/Driver/modules.m | 8 
 1 file changed, 8 insertions(+)

diff --git a/clang/test/Driver/modules.m b/clang/test/Driver/modules.m
index 9eb3569805569a..7b215bb6d870d6 100644
--- a/clang/test/Driver/modules.m
+++ b/clang/test/Driver/modules.m
@@ -57,6 +57,14 @@
 // CHECK-MODULE-MAP-FILES: "-fmodule-map-file=foo.map"
 // CHECK-MODULE-MAP-FILES: "-fmodule-map-file=bar.map"
 
+// Verify that the driver propagates -fmodule-name and -fmodule-map-file flags 
even with
+// -fno-modules.  We rely on this behavior for layering check.
+// RUN: %clang -fno-modules -fmodule-name=foo -c -### %s 2>&1 | FileCheck 
-check-prefix=CHECK-PROPAGATE-MODULE-NAME %s
+// CHECK-PROPAGATE-MODULE-NAME: -fmodule-name=foo
+
+// RUN: %clang -fno-modules -fmodule-map-file=foo.map -c -### %s 2>&1 | 
FileCheck -check-prefix=CHECK-PROPAGATE-MODULE-MAPS %s
+// CHECK-PROPAGATE-MODULE-MAPS: -fmodule-map-file=foo.map
+
 // RUN: %clang -fmodules -fbuiltin-module-map -### %s 2>&1 | FileCheck 
-check-prefix=CHECK-BUILTIN-MODULE-MAP %s
 // CHECK-BUILTIN-MODULE-MAP: "-fmodules"
 // CHECK-BUILTIN-MODULE-MAP: 
"-fmodule-map-file={{.*}}include{{/|}}module.modulemap"

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


[clang] Add tests for driver to propagate module map flags even without -fmod… (PR #75827)

2023-12-19 Thread Walter Lee via cfe-commits

https://github.com/googlewalt updated 
https://github.com/llvm/llvm-project/pull/75827

>From eefa77a7cc7c671ef1551239e473f0267527dfa3 Mon Sep 17 00:00:00 2001
From: Walter Lee 
Date: Mon, 18 Dec 2023 11:41:43 -0500
Subject: [PATCH] Add tests for driver to propagate module map flags when
 -fno-modules

We rely on this behavior for layering check.  Xcode 14.3.1 seems to
have dropped these flags so we are creating a unit test to reproduce
the issue.
---
 clang/test/Driver/modules.m | 8 
 1 file changed, 8 insertions(+)

diff --git a/clang/test/Driver/modules.m b/clang/test/Driver/modules.m
index 9eb3569805569a..7b215bb6d870d6 100644
--- a/clang/test/Driver/modules.m
+++ b/clang/test/Driver/modules.m
@@ -57,6 +57,14 @@
 // CHECK-MODULE-MAP-FILES: "-fmodule-map-file=foo.map"
 // CHECK-MODULE-MAP-FILES: "-fmodule-map-file=bar.map"
 
+// Verify that the driver propagates -fmodule-name and -fmodule-map-file flags 
even with
+// -fno-modules.  We rely on this behavior for layering check.
+// RUN: %clang -fno-modules -fmodule-name=foo -c -### %s 2>&1 | FileCheck 
-check-prefix=CHECK-PROPAGATE-MODULE-NAME %s
+// CHECK-PROPAGATE-MODULE-NAME: -fmodule-name=foo
+
+// RUN: %clang -fno-modules -fmodule-map-file=foo.map -c -### %s 2>&1 | 
FileCheck -check-prefix=CHECK-PROPAGATE-MODULE-MAPS %s
+// CHECK-PROPAGATE-MODULE-MAPS: -fmodule-map-file=foo.map
+
 // RUN: %clang -fmodules -fbuiltin-module-map -### %s 2>&1 | FileCheck 
-check-prefix=CHECK-BUILTIN-MODULE-MAP %s
 // CHECK-BUILTIN-MODULE-MAP: "-fmodules"
 // CHECK-BUILTIN-MODULE-MAP: 
"-fmodule-map-file={{.*}}include{{/|}}module.modulemap"

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


[clang] Add tests for driver to propagate module map flags even without -fmod… (PR #75827)

2023-12-20 Thread Walter Lee via cfe-commits

https://github.com/googlewalt updated 
https://github.com/llvm/llvm-project/pull/75827

>From eefa77a7cc7c671ef1551239e473f0267527dfa3 Mon Sep 17 00:00:00 2001
From: Walter Lee 
Date: Mon, 18 Dec 2023 11:41:43 -0500
Subject: [PATCH 1/2] Add tests for driver to propagate module map flags when
 -fno-modules

We rely on this behavior for layering check.  Xcode 14.3.1 seems to
have dropped these flags so we are creating a unit test to reproduce
the issue.
---
 clang/test/Driver/modules.m | 8 
 1 file changed, 8 insertions(+)

diff --git a/clang/test/Driver/modules.m b/clang/test/Driver/modules.m
index 9eb3569805569a..7b215bb6d870d6 100644
--- a/clang/test/Driver/modules.m
+++ b/clang/test/Driver/modules.m
@@ -57,6 +57,14 @@
 // CHECK-MODULE-MAP-FILES: "-fmodule-map-file=foo.map"
 // CHECK-MODULE-MAP-FILES: "-fmodule-map-file=bar.map"
 
+// Verify that the driver propagates -fmodule-name and -fmodule-map-file flags 
even with
+// -fno-modules.  We rely on this behavior for layering check.
+// RUN: %clang -fno-modules -fmodule-name=foo -c -### %s 2>&1 | FileCheck 
-check-prefix=CHECK-PROPAGATE-MODULE-NAME %s
+// CHECK-PROPAGATE-MODULE-NAME: -fmodule-name=foo
+
+// RUN: %clang -fno-modules -fmodule-map-file=foo.map -c -### %s 2>&1 | 
FileCheck -check-prefix=CHECK-PROPAGATE-MODULE-MAPS %s
+// CHECK-PROPAGATE-MODULE-MAPS: -fmodule-map-file=foo.map
+
 // RUN: %clang -fmodules -fbuiltin-module-map -### %s 2>&1 | FileCheck 
-check-prefix=CHECK-BUILTIN-MODULE-MAP %s
 // CHECK-BUILTIN-MODULE-MAP: "-fmodules"
 // CHECK-BUILTIN-MODULE-MAP: 
"-fmodule-map-file={{.*}}include{{/|}}module.modulemap"

>From 782b6224d6660a243c19a8c9bb58510d6578a64d Mon Sep 17 00:00:00 2001
From: Walter Lee 
Date: Wed, 20 Dec 2023 08:42:49 -0500
Subject: [PATCH 2/2] Change tests to directly test for layering check

---
 clang/test/Driver/modules.m | 20 +---
 1 file changed, 13 insertions(+), 7 deletions(-)

diff --git a/clang/test/Driver/modules.m b/clang/test/Driver/modules.m
index 7b215bb6d870d6..d1a65f5cb07133 100644
--- a/clang/test/Driver/modules.m
+++ b/clang/test/Driver/modules.m
@@ -57,15 +57,21 @@
 // CHECK-MODULE-MAP-FILES: "-fmodule-map-file=foo.map"
 // CHECK-MODULE-MAP-FILES: "-fmodule-map-file=bar.map"
 
-// Verify that the driver propagates -fmodule-name and -fmodule-map-file flags 
even with
-// -fno-modules.  We rely on this behavior for layering check.
-// RUN: %clang -fno-modules -fmodule-name=foo -c -### %s 2>&1 | FileCheck 
-check-prefix=CHECK-PROPAGATE-MODULE-NAME %s
-// CHECK-PROPAGATE-MODULE-NAME: -fmodule-name=foo
+// Verify that the driver propagates -fmodule-name and -fmodule-map-file flags 
when
+// -fmodules-decluse or -fmodules-strict-decluse, as used for layering check.
+// RUN: %clang -fmodules-decluse -fmodule-name=foo -c -### %s 2>&1 | FileCheck 
-check-prefix=CHECK-DECLUSE-PROPAGATE-MODULE-NAME %s
+// CHECK-DECLUSE-PROPAGATE-MODULE-NAME: -fmodule-name=foo
 
-// RUN: %clang -fno-modules -fmodule-map-file=foo.map -c -### %s 2>&1 | 
FileCheck -check-prefix=CHECK-PROPAGATE-MODULE-MAPS %s
-// CHECK-PROPAGATE-MODULE-MAPS: -fmodule-map-file=foo.map
+// RUN: %clang -fmodules-decluse -fmodule-map-file=foo.map -c -### %s 2>&1 | 
FileCheck -check-prefix=CHECK-DECLUSE-PROPAGATE-MODULE-MAPS %s
+// CHECK-DECLUSE-PROPAGATE-MODULE-MAPS: -fmodule-map-file=foo.map
 
-// RUN: %clang -fmodules -fbuiltin-module-map -### %s 2>&1 | FileCheck 
-check-prefix=CHECK-BUILTIN-MODULE-MAP %s
+// RUN: %clang -fmodules-strict-decluse -fmodule-name=foo -c -### %s 2>&1 | 
FileCheck -check-prefix=CHECK-STRICT-DECLUSE-PROPAGATE-MODULE-NAME %s
+// CHECK-STRICT-DECLUSE-PROPAGATE-MODULE-NAME: -fmodule-name=foo
+
+// RUN: %clang -fmodules-strict-decluse -fmodule-map-file=foo.map -c -### %s 
2>&1 | FileCheck -check-prefix=CHECK-STRICT-DECLUSE-PROPAGATE-MODULE-MAPS %s
+// CHECK-STRICT-DECLUSE-PROPAGATE-MODULE-MAPS: -fmodule-map-file=foo.map
+
+// RUN: %clang -fmodules -fbuiltin-module-map -### %s 2>&1 | FileCheck 
-check-prefix=CHECK-BUILTIN-MODULE-MAP %s
 // CHECK-BUILTIN-MODULE-MAP: "-fmodules"
 // CHECK-BUILTIN-MODULE-MAP: 
"-fmodule-map-file={{.*}}include{{/|}}module.modulemap"
 

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


[clang] Add tests for driver to propagate module map flags even without -fmod… (PR #75827)

2023-12-20 Thread Walter Lee via cfe-commits


@@ -57,6 +57,14 @@
 // CHECK-MODULE-MAP-FILES: "-fmodule-map-file=foo.map"
 // CHECK-MODULE-MAP-FILES: "-fmodule-map-file=bar.map"
 
+// RUN: %clang -fno-modules -fmodule-name=foo -c -### %s 2>&1 | FileCheck 
-check-prefix=CHECK-PROPAGATE-MODULE-NAME %s

googlewalt wrote:

I changed the tests to directly test for layering check, since that's what I 
care about.  I don't see analogous tests for c/c++.  Should I add them?

https://github.com/llvm/llvm-project/pull/75827
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] Add tests for driver to propagate module map flags for layering check (PR #75827)

2023-12-21 Thread Walter Lee via cfe-commits

https://github.com/googlewalt edited 
https://github.com/llvm/llvm-project/pull/75827
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] Add tests for driver to propagate module map flags for layering check (PR #75827)

2023-12-21 Thread Walter Lee via cfe-commits

https://github.com/googlewalt closed 
https://github.com/llvm/llvm-project/pull/75827
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


r309626 - Move RTEMS to OSTargets.h

2017-07-31 Thread Walter Lee via cfe-commits
Author: waltl
Date: Mon Jul 31 14:00:16 2017
New Revision: 309626

URL: http://llvm.org/viewvc/llvm-project?rev=309626&view=rev
Log:
Move RTEMS to OSTargets.h

Differential Revision: https://reviews.llvm.org/D36106

Modified:
cfe/trunk/lib/Basic/Targets/OSTargets.h
cfe/trunk/lib/Basic/Targets/X86.h

Modified: cfe/trunk/lib/Basic/Targets/OSTargets.h
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Basic/Targets/OSTargets.h?rev=309626&r1=309625&r2=309626&view=diff
==
--- cfe/trunk/lib/Basic/Targets/OSTargets.h (original)
+++ cfe/trunk/lib/Basic/Targets/OSTargets.h Mon Jul 31 14:00:16 2017
@@ -495,6 +495,40 @@ public:
   }
 };
 
+// RTEMS Target
+template 
+class LLVM_LIBRARY_VISIBILITY RTEMSTargetInfo : public OSTargetInfo {
+protected:
+  void getOSDefines(const LangOptions &Opts, const llvm::Triple &Triple,
+MacroBuilder &Builder) const override {
+// RTEMS defines; list based off of gcc output
+
+Builder.defineMacro("__rtems__");
+Builder.defineMacro("__ELF__");
+  }
+
+public:
+  RTEMSTargetInfo(const llvm::Triple &Triple, const TargetOptions &Opts)
+  : OSTargetInfo(Triple, Opts) {
+switch (Triple.getArch()) {
+default:
+case llvm::Triple::x86:
+  // this->MCountName = ".mcount";
+  break;
+case llvm::Triple::mips:
+case llvm::Triple::mipsel:
+case llvm::Triple::ppc:
+case llvm::Triple::ppc64:
+case llvm::Triple::ppc64le:
+  // this->MCountName = "_mcount";
+  break;
+case llvm::Triple::arm:
+  // this->MCountName = "__mcount";
+  break;
+}
+  }
+};
+
 // Solaris target
 template 
 class LLVM_LIBRARY_VISIBILITY SolarisTargetInfo : public OSTargetInfo {

Modified: cfe/trunk/lib/Basic/Targets/X86.h
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Basic/Targets/X86.h?rev=309626&r1=309625&r2=309626&view=diff
==
--- cfe/trunk/lib/Basic/Targets/X86.h (original)
+++ cfe/trunk/lib/Basic/Targets/X86.h Mon Jul 31 14:00:16 2017
@@ -773,40 +773,6 @@ public:
   bool allowsLargerPreferedTypeAlignment() const override { return false; }
 };
 
-// RTEMS Target
-template 
-class LLVM_LIBRARY_VISIBILITY RTEMSTargetInfo : public OSTargetInfo {
-protected:
-  void getOSDefines(const LangOptions &Opts, const llvm::Triple &Triple,
-MacroBuilder &Builder) const override {
-// RTEMS defines; list based off of gcc output
-
-Builder.defineMacro("__rtems__");
-Builder.defineMacro("__ELF__");
-  }
-
-public:
-  RTEMSTargetInfo(const llvm::Triple &Triple, const TargetOptions &Opts)
-  : OSTargetInfo(Triple, Opts) {
-switch (Triple.getArch()) {
-default:
-case llvm::Triple::x86:
-  // this->MCountName = ".mcount";
-  break;
-case llvm::Triple::mips:
-case llvm::Triple::mipsel:
-case llvm::Triple::ppc:
-case llvm::Triple::ppc64:
-case llvm::Triple::ppc64le:
-  // this->MCountName = "_mcount";
-  break;
-case llvm::Triple::arm:
-  // this->MCountName = "__mcount";
-  break;
-}
-  }
-};
-
 // x86-32 RTEMS target
 class LLVM_LIBRARY_VISIBILITY RTEMSX86_32TargetInfo : public X86_32TargetInfo {
 public:


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


r309815 - Define _GNU_SOURCE for RTEMS c++

2017-08-02 Thread Walter Lee via cfe-commits
Author: waltl
Date: Wed Aug  2 07:36:52 2017
New Revision: 309815

URL: http://llvm.org/viewvc/llvm-project?rev=309815&view=rev
Log:
Define _GNU_SOURCE for RTEMS c++

Summary: This is required by the libc++ locale support.

Reviewers: jyknight

Subscribers: fedor.sergeev

Differential Revision: https://reviews.llvm.org/D36121

Modified:
cfe/trunk/lib/Basic/Targets/OSTargets.h
cfe/trunk/test/Preprocessor/init.c

Modified: cfe/trunk/lib/Basic/Targets/OSTargets.h
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Basic/Targets/OSTargets.h?rev=309815&r1=309814&r2=309815&view=diff
==
--- cfe/trunk/lib/Basic/Targets/OSTargets.h (original)
+++ cfe/trunk/lib/Basic/Targets/OSTargets.h Wed Aug  2 07:36:52 2017
@@ -505,6 +505,8 @@ protected:
 
 Builder.defineMacro("__rtems__");
 Builder.defineMacro("__ELF__");
+if (Opts.CPlusPlus)
+  Builder.defineMacro("_GNU_SOURCE");
   }
 
 public:

Modified: cfe/trunk/test/Preprocessor/init.c
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Preprocessor/init.c?rev=309815&r1=309814&r2=309815&view=diff
==
--- cfe/trunk/test/Preprocessor/init.c (original)
+++ cfe/trunk/test/Preprocessor/init.c Wed Aug  2 07:36:52 2017
@@ -8955,6 +8955,7 @@
 // KFREEBSDI686-DEFINE:#define __GLIBC__ 1
 //
 // RUN: %clang_cc1 -x c++ -triple i686-pc-linux-gnu -fobjc-runtime=gcc -E -dM 
< /dev/null | FileCheck -match-full-lines -check-prefix GNUSOURCE %s
+// RUN: %clang_cc1 -x c++ -triple sparc-rtems-elf -E -dM < /dev/null | 
FileCheck -match-full-lines -check-prefix GNUSOURCE %s
 // GNUSOURCE:#define _GNU_SOURCE 1
 //
 // RUN: %clang_cc1 -x c++ -std=c++98 -fno-rtti -E -dM < /dev/null | FileCheck 
-match-full-lines -check-prefix NORTTI %s


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


[clang] 66c6bbe - Put code that avoids heapifying local blocks behind a flag

2021-09-14 Thread Walter Lee via cfe-commits

Author: Walter Lee
Date: 2021-09-14T14:06:05-04:00
New Revision: 66c6bbe7ff56441706d6cbb349fde9a02e248c9a

URL: 
https://github.com/llvm/llvm-project/commit/66c6bbe7ff56441706d6cbb349fde9a02e248c9a
DIFF: 
https://github.com/llvm/llvm-project/commit/66c6bbe7ff56441706d6cbb349fde9a02e248c9a.diff

LOG: Put code that avoids heapifying local blocks behind a flag

This change puts the functionality in commit
c5792aa90fa45a1842f190c146f19e2c71ea6fbd behind a flag that is off by
default.  The original commit is not in Apple's Clang fork (and blocks
are an Apple extension in the first place), and there is one known
issue that needs to be addressed before it can be enabled safely.

Differential Revision: https://reviews.llvm.org/D108243

Added: 


Modified: 
clang/include/clang/Basic/CodeGenOptions.def
clang/include/clang/Driver/Options.td
clang/lib/CodeGen/CGObjC.cpp
clang/test/CodeGenObjC/arc-block-copy-escape.m
clang/test/CodeGenObjC/arc-blocks.m
clang/test/CodeGenObjCXX/arc-blocks.mm
clang/test/PCH/arc-blocks.mm

Removed: 




diff  --git a/clang/include/clang/Basic/CodeGenOptions.def 
b/clang/include/clang/Basic/CodeGenOptions.def
index 73edae63bfc91..737d2d70bf466 100644
--- a/clang/include/clang/Basic/CodeGenOptions.def
+++ b/clang/include/clang/Basic/CodeGenOptions.def
@@ -188,6 +188,7 @@ CODEGENOPT(NoZeroInitializedInBSS , 1, 0) ///< 
-fno-zero-initialized-in-bss.
 ENUM_CODEGENOPT(ObjCDispatchMethod, ObjCDispatchMethodKind, 2, Legacy)
 /// Replace certain message sends with calls to ObjC runtime entrypoints
 CODEGENOPT(ObjCConvertMessagesToRuntimeCalls , 1, 1)
+CODEGENOPT(ObjCAvoidHeapifyLocalBlocks, 1, 0)
 
 VALUE_CODEGENOPT(OptimizationLevel, 2, 0) ///< The -O[0-3] option specified.
 VALUE_CODEGENOPT(OptimizeSize, 2, 0) ///< If -Os (==1) or -Oz (==2) is 
specified.

diff  --git a/clang/include/clang/Driver/Options.td 
b/clang/include/clang/Driver/Options.td
index 6d0dba2bc5adc..6e8fe785ae04c 100644
--- a/clang/include/clang/Driver/Options.td
+++ b/clang/include/clang/Driver/Options.td
@@ -2369,6 +2369,11 @@ def fobjc_disable_direct_methods_for_testing :
   Group, Flags<[CC1Option]>,
   HelpText<"Ignore attribute objc_direct so that direct methods can be 
tested">,
   MarshallingInfoFlag>;
+defm objc_avoid_heapify_local_blocks : 
BoolFOption<"objc-avoid-heapify-local-blocks",
+  CodeGenOpts<"ObjCAvoidHeapifyLocalBlocks">, DefaultFalse,
+  PosFlag,
+  NegFlag,
+  BothFlags<[CC1Option, NoDriverOption], " to avoid heapifying local blocks">>;
 
 def fomit_frame_pointer : Flag<["-"], "fomit-frame-pointer">, Group;
 def fopenmp : Flag<["-"], "fopenmp">, Group, Flags<[CC1Option, 
NoArgumentUnused, FlangOption, FC1Option]>,

diff  --git a/clang/lib/CodeGen/CGObjC.cpp b/clang/lib/CodeGen/CGObjC.cpp
index 0aaec9af2f41e..4eced4ec046fb 100644
--- a/clang/lib/CodeGen/CGObjC.cpp
+++ b/clang/lib/CodeGen/CGObjC.cpp
@@ -3332,7 +3332,8 @@ struct ARCRetainExprEmitter :
 TryEmitResult result = visitExpr(e);
 // Avoid the block-retain if this is a block literal that doesn't need to 
be
 // copied to the heap.
-if (e->getBlockDecl()->canAvoidCopyToHeap())
+if (CGF.CGM.getCodeGenOpts().ObjCAvoidHeapifyLocalBlocks &&
+e->getBlockDecl()->canAvoidCopyToHeap())
   result.setInt(true);
 return result;
   }

diff  --git a/clang/test/CodeGenObjC/arc-block-copy-escape.m 
b/clang/test/CodeGenObjC/arc-block-copy-escape.m
index 9e409ce72e247..300405f852987 100644
--- a/clang/test/CodeGenObjC/arc-block-copy-escape.m
+++ b/clang/test/CodeGenObjC/arc-block-copy-escape.m
@@ -1,4 +1,6 @@
-// RUN: %clang_cc1 -fobjc-arc -fblocks -emit-llvm %s -o - | FileCheck %s
+// RUN: %clang_cc1 -fobjc-arc -fblocks -emit-llvm %s -o - | FileCheck 
-check-prefix=CHECK -check-prefix=CHECK-HEAP %s
+// RUN: %clang_cc1 -fobjc-arc -fblocks -fobjc-avoid-heapify-local-blocks 
-emit-llvm %s -o - | FileCheck -check-prefix=CHECK -check-prefix=CHECK-NOHEAP %s
+
 
 typedef void (^block_t)(void);
 void use_block(block_t);
@@ -8,17 +10,19 @@
 
 void test0(int i) {
   block_t block = ^{ use_int(i); };
-  // CHECK-LABEL:   define {{.*}}void @test0(
-  // CHECK-NOT: @llvm.objc.retainBlock(
-  // CHECK: ret void
+  // CHECK-LABEL:  define {{.*}}void @test0(
+  // CHECK-HEAP:   call {{.*}}i8* @llvm.objc.retainBlock(i8* {{%.*}}) 
[[NUW:#[0-9]+]], !clang.arc.copy_on_escape
+  // CHECK-NOHEAP-NOT: @llvm.objc.retainBlock(
+  // CHECK:ret void
 }
 
 void test1(int i) {
   id block = ^{ use_int(i); };
   // CHECK-LABEL:   define {{.*}}void @test1(
-  // CHECK: call {{.*}}i8* @llvm.objc.retainBlock(i8* {{%.*}}) 
[[NUW:#[0-9]+]]
-  // CHECK-NOT: !clang.arc.copy_on_escape
-  // CHECK: ret void
+  // CHECK-HEAP:call {{.*}}i8* @llvm.objc.retainBlock(i8* {{%.*}}) [[NUW]]
+  // CHECK-NOHEAP:  call {{.*}}i8* @llvm.objc.retainBlock(i8*  {{%.*}}) 
[[NUW:#[0-9]+]]
+  // CHECK-NOT: !clang.arc.copy_on_escape
+