This is awesome!
On 7 November 2012 17:03, Bob Wilson <[email protected]> wrote: > Author: bwilson > Date: Wed Nov 7 19:03:29 2012 > New Revision: 167566 > > URL: http://llvm.org/viewvc/llvm-project?rev=167566&view=rev > Log: > Remove code to fall back to llvm-gcc for i386 kexts. > > More cleanups to follow in separate commits.... > > Removed: > cfe/trunk/test/Driver/apple-kext-i386.cpp > Modified: > cfe/trunk/include/clang/Driver/Driver.h > cfe/trunk/lib/Driver/Driver.cpp > cfe/trunk/lib/Driver/ToolChains.cpp > cfe/trunk/lib/Frontend/CreateInvocationFromCommandLine.cpp > > Modified: cfe/trunk/include/clang/Driver/Driver.h > URL: > http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Driver/Driver.h?rev=167566&r1=167565&r2=167566&view=diff > ============================================================================== > --- cfe/trunk/include/clang/Driver/Driver.h (original) > +++ cfe/trunk/include/clang/Driver/Driver.h Wed Nov 7 19:03:29 2012 > @@ -146,9 +146,6 @@ > /// jobs. > unsigned CheckInputsExist : 1; > > - /// \brief Force use of clang frontend. > - unsigned ForcedClangUse : 1; > - > public: > /// Use lazy precompiled headers for PCH support. > unsigned CCCUsePCH : 1; > @@ -218,9 +215,6 @@ > InstalledDir = Value; > } > > - bool shouldForceClangUse() const { return ForcedClangUse; } > - void setForcedClangUse(bool V = true) { ForcedClangUse = V; } > - > /// @} > /// @name Primary Functionality > /// @{ > > Modified: cfe/trunk/lib/Driver/Driver.cpp > URL: > http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/Driver.cpp?rev=167566&r1=167565&r2=167566&view=diff > ============================================================================== > --- cfe/trunk/lib/Driver/Driver.cpp (original) > +++ cfe/trunk/lib/Driver/Driver.cpp Wed Nov 7 19:03:29 2012 > @@ -58,7 +58,7 @@ > CCCIsCPP(false),CCCEcho(false), CCCPrintBindings(false), > CCPrintOptions(false), CCPrintHeaders(false), CCLogDiagnostics(false), > CCGenDiagnostics(false), CCCGenericGCCName(""), CheckInputsExist(true), > - ForcedClangUse(false), CCCUsePCH(true), > SuppressMissingInputWarning(false) { > + CCCUsePCH(true), SuppressMissingInputWarning(false) { > > Name = llvm::sys::path::stem(ClangExecutable); > Dir = llvm::sys::path::parent_path(ClangExecutable); > > Modified: cfe/trunk/lib/Driver/ToolChains.cpp > URL: > http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/ToolChains.cpp?rev=167566&r1=167565&r2=167566&view=diff > ============================================================================== > --- cfe/trunk/lib/Driver/ToolChains.cpp (original) > +++ cfe/trunk/lib/Driver/ToolChains.cpp Wed Nov 7 19:03:29 2012 > @@ -183,24 +183,11 @@ > Tool &Darwin::SelectTool(const Compilation &C, const JobAction &JA, > const ActionList &Inputs) const { > Action::ActionClass Key = JA.getKind(); > - bool useClang = false; > > if (getDriver().ShouldUseClangCompiler(C, JA, getTriple())) { > - useClang = true; > - // Fallback to llvm-gcc for i386 kext compiles, we don't support that > ABI. > - if (!getDriver().shouldForceClangUse() && > - Inputs.size() == 1 && > - types::isCXX(Inputs[0]->getType()) && > - getTriple().isOSDarwin() && > - getTriple().getArch() == llvm::Triple::x86 && > - (C.getArgs().getLastArg(options::OPT_fapple_kext) || > - C.getArgs().getLastArg(options::OPT_mkernel))) > - useClang = false; > - } > - > - // FIXME: This seems like a hacky way to choose clang frontend. > - if (useClang) > + // FIXME: This seems like a hacky way to choose clang frontend. > Key = Action::AnalyzeJobClass; > + } > > bool UseIntegratedAs = C.getArgs().hasFlag(options::OPT_integrated_as, > options::OPT_no_integrated_as, > > Modified: cfe/trunk/lib/Frontend/CreateInvocationFromCommandLine.cpp > URL: > http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Frontend/CreateInvocationFromCommandLine.cpp?rev=167566&r1=167565&r2=167566&view=diff > ============================================================================== > --- cfe/trunk/lib/Frontend/CreateInvocationFromCommandLine.cpp (original) > +++ cfe/trunk/lib/Frontend/CreateInvocationFromCommandLine.cpp Wed Nov 7 > 19:03:29 2012 > @@ -49,11 +49,6 @@ > // FIXME: We shouldn't have to pass in the path info. > driver::Driver TheDriver("clang", llvm::sys::getDefaultTargetTriple(), > "a.out", false, *Diags); > - // Force driver to use clang. > - // FIXME: This seems like a hack. Maybe the "Clang" tool subclass should be > - // available for using it to get the arguments, thus avoiding the overkill > - // of using the driver. > - TheDriver.setForcedClangUse(); > > // Don't check that inputs exist, they may have been remapped. > TheDriver.setCheckInputsExist(false); > > Removed: cfe/trunk/test/Driver/apple-kext-i386.cpp > URL: > http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/apple-kext-i386.cpp?rev=167565&view=auto > ============================================================================== > --- cfe/trunk/test/Driver/apple-kext-i386.cpp (original) > +++ cfe/trunk/test/Driver/apple-kext-i386.cpp (removed) > @@ -1,59 +0,0 @@ > -// Check that we transparently fallback to llvm-gcc for i386 kexts, we don't > -// support the ABI they use (yet). > - > -// RUN: %clang -target i386-apple-darwin10 \ > -// RUN: -fapple-kext -### -fsyntax-only %s 2> %t > -// RUN: FileCheck --check-prefix=CHECK < %t %s > - > -// CHECK: cc1plus" > -// CHECK: "-fapple-kext" > - > -// RUN: %clang -target i386-apple-darwin10 \ > -// RUN: -mkernel -### -fsyntax-only %s 2> %t > -// RUN: FileCheck --check-prefix=CHECK-MKERNEL < %t %s > - > -// CHECK-MKERNEL: cc1plus" > -// CHECK-MKERNEL: "-mkernel" > - > -// RUN: %clang -target i386-apple-darwin10 \ > -// RUN: -Wno-self-assign -Wc++11-extensions -Wno-microsoft -Wmicrosoft > -Wvla \ > -// RUN: -faltivec -mthumb -mcpu=G4 -mlongcall -mno-longcall -msoft-float \ > -// RUN: -Wno-int-conversion -Wconstant-conversion -Wenum-conversion \ > -// RUN: -fapple-kext -### -fsyntax-only %s 2> %t > -// RUN: FileCheck --check-prefix=CHECK-UNSUPPORTED < %t %s > - > -// CHECK-UNSUPPORTED: cc1plus" > -// CHECK-UNSUPPORTED-NOT: "-Wno-self-assign" > -// CHECK-UNSUPPORTED-NOT: "-Wc++11-extensions" > -// CHECK-UNSUPPORTED-NOT: "-Wno-microsoft" > -// CHECK-UNSUPPORTED-NOT: "-Wmicrosoft" > -// CHECK-UNSUPPORTED-NOT: "-Wvla" > -// CHECK-UNSUPPORTED-NOT: "-faltivec" > -// CHECK-UNSUPPORTED-NOT: "-mthumb" > -// CHECK-UNSUPPORTED-NOT: "-mlongcall" > -// CHECK-UNSUPPORTED: "-mno-longcall" > -// CHECK-UNSUPPORTED: "-msoft-float" > -// CHECK-UNSUPPORTED-NOT: "-Wno-int-conversion" > -// CHECK-UNSUPPORTED-NOT: "-Wconstant-conversion" > -// CHECK-UNSUPPORTED-NOT: "-Wenum-conversion" > - > -// RUN: %clang -target i386-apple-darwin10 \ > -// RUN: -Wconstant-logical-operand -save-temps \ > -// RUN: -fapple-kext -### -fsyntax-only %s 2> %t > -// RUN: FileCheck --check-prefix=CHECK-UNSUPPORTED2 < %t %s > - > -// CHECK-UNSUPPORTED2: cc1plus" > -// CHECK-UNSUPPORTED2-NOT: "-Wconstant-logical-operand" > - > -// Check that -serialize-diagnostics does not cause an "argument unused" > error. > -// RUN: %clang -target i386-apple-darwin10 \ > -// RUN: -Wall -fapple-kext -### -serialize-diagnostics %t.dia -c %s 2>&1 | > \ > -// RUN: FileCheck --check-prefix=CHECK-UNUSED %s > - > -// Check that --serialize-diagnostics does not cause an "argument unused" > error. > -// RUN: %clang -target i386-apple-darwin10 \ > -// RUN: -Wall -fapple-kext -### --serialize-diagnostics %t.dia -c %s 2>&1 > | \ > -// RUN: FileCheck --check-prefix=CHECK-UNUSED %s > - > -// CHECK-UNUSED-NOT: argument unused > -// CHECK-UNUSED: cc1plus > > > _______________________________________________ > cfe-commits mailing list > [email protected] > http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits _______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
