Chromium Code Reviews| OLD | NEW |
|---|---|
| 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 Loading... | |
| 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 Loading... | |
| 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 |
| OLD | NEW |