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 739 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
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 Loading... |
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 |
OLD | NEW |