Update to LLVM 3.5a.

Change-Id: Ifadecab779f128e62e430c2b4f6ddd84953ed617
diff --git a/docs/CommandGuide/index.rst b/docs/CommandGuide/index.rst
index d50542d..ab4788a 100644
--- a/docs/CommandGuide/index.rst
+++ b/docs/CommandGuide/index.rst
@@ -22,10 +22,10 @@
    llvm-link
    llvm-ar
    llvm-nm
-   llvm-prof
    llvm-config
    llvm-diff
    llvm-cov
+   llvm-profdata
    llvm-stress
    llvm-symbolizer
 
diff --git a/docs/CommandGuide/llc.rst b/docs/CommandGuide/llc.rst
index 02ad798..8d5c9ce 100644
--- a/docs/CommandGuide/llc.rst
+++ b/docs/CommandGuide/llc.rst
@@ -45,7 +45,7 @@
 
  Generate code at different optimization levels.  These correspond to the
  ``-O0``, ``-O1``, ``-O2``, and ``-O3`` optimization levels used by
- :program:`llvm-gcc` and :program:`clang`.
+ :program:`clang`.
 
 .. option:: -mtriple=<target triple>
 
@@ -112,11 +112,6 @@
  optimizations allow the code generator to make use of some instructions which
  would otherwise not be usable (such as ``fsin`` on X86).
 
-.. option:: --enable-correct-eh-support
-
- Instruct the **lowerinvoke** pass to insert code for correct exception
- handling support.  This is expensive and is by default omitted for efficiency.
-
 .. option:: --stats
 
  Print statistics recorded by code-generation passes.
diff --git a/docs/CommandGuide/lli.rst b/docs/CommandGuide/lli.rst
index a9aaf31..502fbd6 100644
--- a/docs/CommandGuide/lli.rst
+++ b/docs/CommandGuide/lli.rst
@@ -190,12 +190,6 @@
 
 
 
-**-enable-correct-eh-support**
-
- Make the -lowerinvoke pass insert expensive, but correct, EH code.
-
-
-
 **-jit-enable-eh**
 
  Exception handling should be enabled in the just-in-time compiler.
diff --git a/docs/CommandGuide/llvm-prof.rst b/docs/CommandGuide/llvm-prof.rst
deleted file mode 100644
index e8d0b19..0000000
--- a/docs/CommandGuide/llvm-prof.rst
+++ /dev/null
@@ -1,63 +0,0 @@
-llvm-prof - print execution profile of LLVM program
-===================================================
-
-
-SYNOPSIS
---------
-
-
-**llvm-prof** [*options*] [*bitcode file*] [*llvmprof.out*]
-
-
-DESCRIPTION
------------
-
-
-The **llvm-prof** tool reads in an *llvmprof.out* file (which can
-optionally use a specific file with the third program argument), a bitcode file
-for the program, and produces a human readable report, suitable for determining
-where the program hotspots are.
-
-This program is often used in conjunction with the *utils/profile.pl*
-script.  This script automatically instruments a program, runs it with the JIT,
-then runs **llvm-prof** to format a report.  To get more information about
-*utils/profile.pl*, execute it with the **-help** option.
-
-
-OPTIONS
--------
-
-
-
-**--annotated-llvm** or **-A**
-
- In addition to the normal report printed, print out the code for the
- program, annotated with execution frequency information. This can be
- particularly useful when trying to visualize how frequently basic blocks
- are executed.  This is most useful with basic block profiling
- information or better.
-
-
-
-**--print-all-code**
-
- Using this option enables the **--annotated-llvm** option, but it
- prints the entire module, instead of just the most commonly executed
- functions.
-
-
-
-**--time-passes**
-
- Record the amount of time needed for each pass and print it to standard
- error.
-
-
-
-
-EXIT STATUS
------------
-
-
-**llvm-prof** returns 1 if it cannot load the bitcode file or the profile
-information. Otherwise, it exits with zero.
diff --git a/docs/CommandGuide/llvm-profdata.rst b/docs/CommandGuide/llvm-profdata.rst
new file mode 100644
index 0000000..6b8e4d7
--- /dev/null
+++ b/docs/CommandGuide/llvm-profdata.rst
@@ -0,0 +1,29 @@
+llvm-profdata - work with profile data
+======================================
+
+SYNOPSIS
+--------
+
+:program:`llvm-profdata` [-output=output] file1 file2
+
+DESCRIPTION
+-----------
+
+The experimental :program:`llvm-profdata` tool reads two profile data files
+generated by PGO instrumentation and generates a file with merged data.
+
+The profile data format itself is currently textual.
+
+OPTIONS
+-------
+
+.. option:: -output=output
+
+ This option selects the output filename.  If not specified, output is to
+ stdout.
+
+EXIT STATUS
+-----------
+
+:program:`llvm-profdata` returns 1 if it cannot read input files or there is a
+mismatch between their data.
diff --git a/docs/CommandGuide/llvm-symbolizer.rst b/docs/CommandGuide/llvm-symbolizer.rst
index e03be9b..dfbdb3a 100644
--- a/docs/CommandGuide/llvm-symbolizer.rst
+++ b/docs/CommandGuide/llvm-symbolizer.rst
@@ -10,7 +10,9 @@
 -----------
 
 :program:`llvm-symbolizer` reads object file names and addresses from standard
-input and prints corresponding source code locations to standard output. This
+input and prints corresponding source code locations to standard output.
+If object file is specified in command line, :program:`llvm-symbolizer` reads
+only addresses from standard input. This
 program uses debug info sections and symbol table in the object files.
 
 EXAMPLE
@@ -45,10 +47,22 @@
 
   _main
   /tmp/source_x86_64.cc:8
+  $ cat addr2.txt
+  0x4004f4
+  0x401000
+  $ llvm-symbolizer -obj=a.out < addr2.txt
+  main
+  /tmp/a.cc:4
+
+  foo(int)
+  /tmp/a.cc:12
 
 OPTIONS
 -------
 
+.. option:: -obj
+  Path to object file to be symbolized.
+
 .. option:: -functions
 
   Print function names as well as source file/line locations. Defaults to true.
diff --git a/docs/CommandGuide/opt.rst b/docs/CommandGuide/opt.rst
index 179c297..3fed684 100644
--- a/docs/CommandGuide/opt.rst
+++ b/docs/CommandGuide/opt.rst
@@ -65,9 +65,8 @@
 .. option:: -std-compile-opts
 
  This is short hand for a standard list of *compile time optimization* passes.
- This is typically used to optimize the output from the llvm-gcc front end.  It
- might be useful for other front end compilers as well.  To discover the full
- set of options available, use the following command:
+ It might be useful for other front end compilers as well.  To discover the
+ full set of options available, use the following command:
 
  .. code-block:: sh