Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(76)

Side by Side Diff: lib/Driver/ToolChains.h

Issue 1547623002: Clang toolchain driver for PNaCl (Closed) Base URL: https://chromium.googlesource.com/native_client/pnacl-clang.git@master
Patch Set: Review feedback addressed Created 4 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 //===--- ToolChains.h - ToolChain Implementations ---------------*- C++ -*-===// 1 //===--- ToolChains.h - ToolChain Implementations ---------------*- C++ -*-===//
2 // 2 //
3 // The LLVM Compiler Infrastructure 3 // The LLVM Compiler Infrastructure
4 // 4 //
5 // This file is distributed under the University of Illinois Open Source 5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details. 6 // License. See LICENSE.TXT for details.
7 // 7 //
8 //===----------------------------------------------------------------------===// 8 //===----------------------------------------------------------------------===//
9 9
10 #ifndef LLVM_CLANG_LIB_DRIVER_TOOLCHAINS_H 10 #ifndef LLVM_CLANG_LIB_DRIVER_TOOLCHAINS_H
(...skipping 756 matching lines...) Expand 10 before | Expand all | Expand 10 after
767 std::string Linker; 767 std::string Linker;
768 768
769 protected: 769 protected:
770 Tool *buildLinker() const override; 770 Tool *buildLinker() const override;
771 Tool *buildAssembler() const override; 771 Tool *buildAssembler() const override;
772 772
773 private: 773 private:
774 std::string NaClArmMacrosPath; 774 std::string NaClArmMacrosPath;
775 }; 775 };
776 776
777 class LLVM_LIBRARY_VISIBILITY Generic_BC : public ToolChain {
778 virtual void anchor();
Derek Schuff 2016/02/24 18:22:29 I don't think we need the anchor since we have an
Petr Hosek 2016/02/26 00:43:39 Done.
779 public:
780 Generic_BC(const Driver &D, const llvm::Triple &Triple,
781 const llvm::opt::ArgList &Args);
782
783 bool HasNativeLLVMSupport() const override { return true; }
784
785 bool IsIntegratedAssemblerDefault() const override { return true; }
786
787 bool isPICDefault() const override { return false; }
788 bool isPIEDefault() const override { return false; }
789 bool isPICDefaultForced() const override { return false; }
790
791 bool isBitcodeOnlyTarget() const override { return true; }
792 };
793
794 class LLVM_LIBRARY_VISIBILITY PNaClToolChain : public Generic_BC {
795 public:
796 PNaClToolChain(const Driver &D, const llvm::Triple &Triple,
797 const llvm::opt::ArgList &Args);
798
799 /// Add the linker arguments to link the compiler runtime library.
800 virtual void AddLinkRuntimeLibArgs(const llvm::opt::ArgList &Args,
801 llvm::opt::ArgStringList &CmdArgs) const;
802
803 CXXStdlibType GetCXXStdlibType(const llvm::opt::ArgList &Args) const override;
804
805 void
806 AddClangSystemIncludeArgs(const llvm::opt::ArgList &DriverArgs,
807 llvm::opt::ArgStringList &CC1Args) const override;
808 void AddClangCXXStdlibIncludeArgs(
809 const llvm::opt::ArgList &DriverArgs,
810 llvm::opt::ArgStringList &CC1Args) const override;
811 void AddCXXStdlibLibArgs(const llvm::opt::ArgList &Args,
812 llvm::opt::ArgStringList &CmdArgs) const override;
813
814 RuntimeLibType GetDefaultRuntimeLibType() const override {
815 return ToolChain::RLT_CompilerRT;
816 }
817
818 void addClangTargetOptions(const llvm::opt::ArgList &DriverArgs,
819 llvm::opt::ArgStringList &CC1Args) const override;
820
821 protected:
822 Tool *buildLinker() const override;
823 Tool *buildAssembler() const override;
824
825 private:
826 static bool addLibStdCXXIncludePaths(Twine Base, Twine Suffix,
827 StringRef GCCTriple,
828 StringRef GCCMultiarchTriple,
829 StringRef TargetMultiarchTriple,
830 Twine IncludeSuffix,
831 const llvm::opt::ArgList &DriverArgs,
832 llvm::opt::ArgStringList &CC1Args);
833
834 std::string computeSysRoot() const;
835 };
836
777 /// TCEToolChain - A tool chain using the llvm bitcode tools to perform 837 /// TCEToolChain - A tool chain using the llvm bitcode tools to perform
778 /// all subcommands. See http://tce.cs.tut.fi for our peculiar target. 838 /// all subcommands. See http://tce.cs.tut.fi for our peculiar target.
779 class LLVM_LIBRARY_VISIBILITY TCEToolChain : public ToolChain { 839 class LLVM_LIBRARY_VISIBILITY TCEToolChain : public ToolChain {
780 public: 840 public:
781 TCEToolChain(const Driver &D, const llvm::Triple &Triple, 841 TCEToolChain(const Driver &D, const llvm::Triple &Triple,
782 const llvm::opt::ArgList &Args); 842 const llvm::opt::ArgList &Args);
783 ~TCEToolChain() override; 843 ~TCEToolChain() override;
784 844
785 bool IsMathErrnoDefault() const override; 845 bool IsMathErrnoDefault() const override;
786 bool isPICDefault() const override; 846 bool isPICDefault() const override;
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
872 llvm::opt::ArgStringList &CC1Args) const override; 932 llvm::opt::ArgStringList &CC1Args) const override;
873 void AddCXXStdlibLibArgs(const llvm::opt::ArgList &Args, 933 void AddCXXStdlibLibArgs(const llvm::opt::ArgList &Args,
874 llvm::opt::ArgStringList &CmdArgs) const override; 934 llvm::opt::ArgStringList &CmdArgs) const override;
875 }; 935 };
876 936
877 } // end namespace toolchains 937 } // end namespace toolchains
878 } // end namespace driver 938 } // end namespace driver
879 } // end namespace clang 939 } // end namespace clang
880 940
881 #endif 941 #endif
OLDNEW
« no previous file with comments | « lib/Driver/Driver.cpp ('k') | lib/Driver/ToolChains.cpp » ('j') | lib/Driver/ToolChains.cpp » ('J')

Powered by Google App Engine
This is Rietveld 408576698