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

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, 9 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
« no previous file with comments | « lib/Driver/Driver.cpp ('k') | lib/Driver/ToolChains.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 739 matching lines...) Expand 10 before | Expand all | Expand 10 after
750 std::string Linker; 750 std::string Linker;
751 751
752 protected: 752 protected:
753 Tool *buildLinker() const override; 753 Tool *buildLinker() const override;
754 Tool *buildAssembler() const override; 754 Tool *buildAssembler() const override;
755 755
756 private: 756 private:
757 std::string NaClArmMacrosPath; 757 std::string NaClArmMacrosPath;
758 }; 758 };
759 759
760 class LLVM_LIBRARY_VISIBILITY Generic_BC : public ToolChain {
761 public:
762 Generic_BC(const Driver &D, const llvm::Triple &Triple,
763 const llvm::opt::ArgList &Args);
764
765 bool HasNativeLLVMSupport() const override { return true; }
766
767 bool IsIntegratedAssemblerDefault() const override { return true; }
768
769 bool isPICDefault() const override { return false; }
770 bool isPIEDefault() const override { return false; }
771 bool isPICDefaultForced() const override { return false; }
772
773 bool isBitcodeOnlyTarget() const override { return true; }
774 };
775
776 class LLVM_LIBRARY_VISIBILITY PNaClToolChain : public Generic_BC {
777 public:
778 PNaClToolChain(const Driver &D, const llvm::Triple &Triple,
779 const llvm::opt::ArgList &Args);
780
781 /// Add the linker arguments to link the compiler runtime library.
782 virtual void AddLinkRuntimeLibArgs(const llvm::opt::ArgList &Args,
783 llvm::opt::ArgStringList &CmdArgs) const;
784
785 CXXStdlibType GetCXXStdlibType(const llvm::opt::ArgList &Args) const override;
786
787 void
788 AddClangSystemIncludeArgs(const llvm::opt::ArgList &DriverArgs,
789 llvm::opt::ArgStringList &CC1Args) const override;
790 void AddClangCXXStdlibIncludeArgs(
791 const llvm::opt::ArgList &DriverArgs,
792 llvm::opt::ArgStringList &CC1Args) const override;
793 void AddCXXStdlibLibArgs(const llvm::opt::ArgList &Args,
794 llvm::opt::ArgStringList &CmdArgs) const override;
795
796 RuntimeLibType GetDefaultRuntimeLibType() const override {
797 return ToolChain::RLT_CompilerRT;
798 }
799
800 void addClangTargetOptions(const llvm::opt::ArgList &DriverArgs,
801 llvm::opt::ArgStringList &CC1Args) const override;
802
803 protected:
804 Tool *buildLinker() const override;
805 Tool *buildAssembler() const override;
806
807 private:
808 static bool addLibStdCXXIncludePaths(Twine Base, Twine Suffix,
809 StringRef GCCTriple,
810 StringRef GCCMultiarchTriple,
811 StringRef TargetMultiarchTriple,
812 Twine IncludeSuffix,
813 const llvm::opt::ArgList &DriverArgs,
814 llvm::opt::ArgStringList &CC1Args);
815
816 std::string computeSysRoot() const;
817 };
818
760 /// TCEToolChain - A tool chain using the llvm bitcode tools to perform 819 /// TCEToolChain - A tool chain using the llvm bitcode tools to perform
761 /// all subcommands. See http://tce.cs.tut.fi for our peculiar target. 820 /// all subcommands. See http://tce.cs.tut.fi for our peculiar target.
762 class LLVM_LIBRARY_VISIBILITY TCEToolChain : public ToolChain { 821 class LLVM_LIBRARY_VISIBILITY TCEToolChain : public ToolChain {
763 public: 822 public:
764 TCEToolChain(const Driver &D, const llvm::Triple &Triple, 823 TCEToolChain(const Driver &D, const llvm::Triple &Triple,
765 const llvm::opt::ArgList &Args); 824 const llvm::opt::ArgList &Args);
766 ~TCEToolChain() override; 825 ~TCEToolChain() override;
767 826
768 bool IsMathErrnoDefault() const override; 827 bool IsMathErrnoDefault() const override;
769 bool isPICDefault() const override; 828 bool isPICDefault() const override;
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
855 llvm::opt::ArgStringList &CC1Args) const override; 914 llvm::opt::ArgStringList &CC1Args) const override;
856 void AddCXXStdlibLibArgs(const llvm::opt::ArgList &Args, 915 void AddCXXStdlibLibArgs(const llvm::opt::ArgList &Args,
857 llvm::opt::ArgStringList &CmdArgs) const override; 916 llvm::opt::ArgStringList &CmdArgs) const override;
858 }; 917 };
859 918
860 } // end namespace toolchains 919 } // end namespace toolchains
861 } // end namespace driver 920 } // end namespace driver
862 } // end namespace clang 921 } // end namespace clang
863 922
864 #endif 923 #endif
OLDNEW
« no previous file with comments | « lib/Driver/Driver.cpp ('k') | lib/Driver/ToolChains.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698