summaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorrdivacky <rdivacky@FreeBSD.org>2009-12-01 11:07:05 +0000
committerrdivacky <rdivacky@FreeBSD.org>2009-12-01 11:07:05 +0000
commite7908924d847e63b02bc82bfaa1709ab9c774dcd (patch)
treeffe0478472eaa0686f11cb02c6df7d257b8719b0 /tools
parentbf68f1ea49e39c4194f339ddd4421b0c3a31988b (diff)
downloadFreeBSD-src-e7908924d847e63b02bc82bfaa1709ab9c774dcd.zip
FreeBSD-src-e7908924d847e63b02bc82bfaa1709ab9c774dcd.tar.gz
Update LLVM to r90226.
Diffstat (limited to 'tools')
-rw-r--r--tools/llvm-config/llvm-config.in.in4
-rw-r--r--tools/llvmc/doc/LLVMC-Reference.rst2
-rw-r--r--tools/llvmc/example/Hello/Hello.cpp4
-rw-r--r--tools/llvmc/plugins/Base/Base.td.in20
-rw-r--r--tools/lto/LTOCodeGenerator.cpp2
-rw-r--r--tools/opt/GraphPrinters.cpp6
6 files changed, 34 insertions, 4 deletions
diff --git a/tools/llvm-config/llvm-config.in.in b/tools/llvm-config/llvm-config.in.in
index 7f93f16..d0edda0 100644
--- a/tools/llvm-config/llvm-config.in.in
+++ b/tools/llvm-config/llvm-config.in.in
@@ -333,6 +333,10 @@ sub build_name_map {
if (defined $NAME_MAP{$target.'asmparser'}) {
push @{$NAME_MAP{$target}},$target.'asmparser'
}
+
+ if (defined $NAME_MAP{$target.'disassembler'}) {
+ push @{$NAME_MAP{$target}},$target.'disassembler'
+ }
}
# Add virtual entries.
diff --git a/tools/llvmc/doc/LLVMC-Reference.rst b/tools/llvmc/doc/LLVMC-Reference.rst
index b92ab69..102795e 100644
--- a/tools/llvmc/doc/LLVMC-Reference.rst
+++ b/tools/llvmc/doc/LLVMC-Reference.rst
@@ -448,7 +448,7 @@ use TableGen inheritance instead.
- ``element_in_list`` - Returns true if a command-line parameter
list contains a given value.
- Example: ``(parameter_in_list "l", "pthread")``.
+ Example: ``(element_in_list "l", "pthread")``.
- ``input_languages_contain`` - Returns true if a given language
belongs to the current input language set.
diff --git a/tools/llvmc/example/Hello/Hello.cpp b/tools/llvmc/example/Hello/Hello.cpp
index 9c96bd0..a7179ea 100644
--- a/tools/llvmc/example/Hello/Hello.cpp
+++ b/tools/llvmc/example/Hello/Hello.cpp
@@ -17,6 +17,10 @@
namespace {
struct MyPlugin : public llvmc::BasePlugin {
+
+ void PreprocessOptions() const
+ {}
+
void PopulateLanguageMap(llvmc::LanguageMap&) const
{ outs() << "Hello!\n"; }
diff --git a/tools/llvmc/plugins/Base/Base.td.in b/tools/llvmc/plugins/Base/Base.td.in
index c26a567..125e95c 100644
--- a/tools/llvmc/plugins/Base/Base.td.in
+++ b/tools/llvmc/plugins/Base/Base.td.in
@@ -38,6 +38,10 @@ def OptList : OptionList<[
(help "Compile and assemble, but do not link")),
(switch_option "pthread",
(help "Enable threads")),
+ (switch_option "fPIC",
+ (help "Relocation model: PIC"), (hidden)),
+ (switch_option "mdynamic-no-pic",
+ (help "Relocation model: dynamic-no-pic"), (hidden)),
(parameter_option "linker",
(help "Choose linker (possible values: gcc, g++)")),
(parameter_option "MF",
@@ -47,6 +51,12 @@ def OptList : OptionList<[
(hidden)),
(parameter_list_option "include",
(help "Include the named file prior to preprocessing")),
+ (parameter_list_option "framework",
+ (help "Specifies a framework to link against")),
+ (parameter_list_option "weak_framework",
+ (help "Specifies a framework to weakly link against"), (hidden)),
+ (prefix_list_option "F",
+ (help "Add a directory to framework search path")),
(prefix_list_option "I",
(help "Add a directory to include path")),
(prefix_list_option "D",
@@ -105,11 +115,15 @@ class llvm_gcc_based <string cmd_prefix, string in_lang, string E_ext> : Tool<
(and (switch_on "emit-llvm"), (switch_on "c")), (stop_compilation),
(switch_on "fsyntax-only"), (stop_compilation),
(not_empty "include"), (forward "include"),
+ (not_empty "save-temps"), (append_cmd "-save-temps"),
(not_empty "I"), (forward "I"),
+ (not_empty "F"), (forward "F"),
(not_empty "D"), (forward "D"),
(switch_on "O1"), (forward "O1"),
(switch_on "O2"), (forward "O2"),
(switch_on "O3"), (forward "O3"),
+ (switch_on "fPIC"), (forward "fPIC"),
+ (switch_on "mdynamic-no-pic"), (forward "mdynamic-no-pic"),
(not_empty "MF"), (forward "MF"),
(not_empty "MT"), (forward "MT"))),
(sink)
@@ -162,6 +176,9 @@ def llc : Tool<
(switch_on "O1"), (forward "O1"),
(switch_on "O2"), (forward "O2"),
(switch_on "O3"), (forward "O3"),
+ (switch_on "fPIC"), (append_cmd "-relocation-model=pic"),
+ (switch_on "mdynamic-no-pic"),
+ (append_cmd "-relocation-model=dynamic-no-pic"),
(not_empty "Wllc,"), (unpack_values "Wllc,")))
]>;
@@ -175,6 +192,9 @@ class llvm_gcc_based_linker <string cmd_prefix> : Tool<
(actions (case
(switch_on "pthread"), (append_cmd "-lpthread"),
(not_empty "L"), (forward "L"),
+ (not_empty "F"), (forward "F"),
+ (not_empty "framework"), (forward "framework"),
+ (not_empty "weak_framework"), (forward "weak_framework"),
(not_empty "l"), (forward "l"),
(not_empty "Wl,"), (forward "Wl,")))
]>;
diff --git a/tools/lto/LTOCodeGenerator.cpp b/tools/lto/LTOCodeGenerator.cpp
index 0b9cb29..060fc4f 100644
--- a/tools/lto/LTOCodeGenerator.cpp
+++ b/tools/lto/LTOCodeGenerator.cpp
@@ -305,7 +305,7 @@ bool LTOCodeGenerator::determineTarget(std::string& errMsg)
}
// construct LTModule, hand over ownership of module and target
- const std::string FeatureStr =
+ const std::string FeatureStr =
SubtargetFeatures::getDefaultSubtargetFeatures(llvm::Triple(Triple));
_target = march->createTargetMachine(Triple, FeatureStr);
}
diff --git a/tools/opt/GraphPrinters.cpp b/tools/opt/GraphPrinters.cpp
index 1ae6be2..bbf8d12 100644
--- a/tools/opt/GraphPrinters.cpp
+++ b/tools/opt/GraphPrinters.cpp
@@ -46,12 +46,14 @@ static void WriteGraphToFile(std::ostream &O, const std::string &GraphName,
namespace llvm {
template<>
struct DOTGraphTraits<CallGraph*> : public DefaultDOTGraphTraits {
+
+ DOTGraphTraits (bool isSimple=false) : DefaultDOTGraphTraits(isSimple) {}
+
static std::string getGraphName(CallGraph *F) {
return "Call Graph";
}
- static std::string getNodeLabel(CallGraphNode *Node, CallGraph *Graph,
- bool ShortNames) {
+ static std::string getNodeLabel(CallGraphNode *Node, CallGraph *Graph) {
if (Node->getFunction())
return ((Value*)Node->getFunction())->getName();
else
OpenPOWER on IntegriCloud