aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--docs/LangRef.html14
-rw-r--r--docs/README.txt2
-rw-r--r--docs/ReleaseNotes.html19
-rw-r--r--docs/subsystems.rst7
-rw-r--r--include/llvm/Analysis/ScalarEvolutionExpander.h4
-rw-r--r--include/llvm/CodeGen/CommandFlags.h228
-rw-r--r--include/llvm/CodeGen/MachineFrameInfo.h9
-rw-r--r--include/llvm/CodeGen/MachineRegisterInfo.h45
-rw-r--r--include/llvm/CodeGen/SchedulerRegistry.h5
-rw-r--r--include/llvm/ExecutionEngine/RuntimeDyld.h2
-rw-r--r--include/llvm/InitializePasses.h3
-rw-r--r--include/llvm/LinkAllPasses.h1
-rw-r--r--include/llvm/MC/MCParser/MCAsmParser.h35
-rw-r--r--include/llvm/MC/MCSchedule.h8
-rw-r--r--include/llvm/Operator.h32
-rw-r--r--include/llvm/Target/TargetMachine.h6
-rw-r--r--include/llvm/Target/TargetTransformImpl.h54
-rw-r--r--include/llvm/TargetTransformInfo.h128
-rw-r--r--include/llvm/Transforms/IPO.h5
-rw-r--r--include/llvm/Transforms/Scalar.h7
-rw-r--r--include/llvm/Transforms/Vectorize.h6
-rw-r--r--lib/Analysis/ScalarEvolutionExpander.cpp12
-rw-r--r--lib/CodeGen/ExecutionDepsFix.cpp2
-rw-r--r--lib/CodeGen/MachineRegisterInfo.cpp4
-rw-r--r--lib/CodeGen/Passes.cpp4
-rw-r--r--lib/CodeGen/PrologEpilogInserter.cpp2
-rw-r--r--lib/CodeGen/RegAllocFast.cpp53
-rw-r--r--lib/CodeGen/SelectionDAG/DAGCombiner.cpp27
-rw-r--r--lib/CodeGen/SelectionDAG/ScheduleDAGFast.cpp157
-rw-r--r--lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp3
-rw-r--r--lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.h3
-rw-r--r--lib/CodeGen/StackColoring.cpp20
-rw-r--r--lib/CodeGen/TargetSchedule.cpp12
-rw-r--r--lib/DebugInfo/DWARFContext.cpp37
-rw-r--r--lib/MC/MCParser/AsmParser.cpp210
-rw-r--r--lib/Support/Unix/Signals.inc30
-rw-r--r--lib/Target/ARM/ARMFrameLowering.cpp4
-rw-r--r--lib/Target/ARM/ARMTargetMachine.cpp6
-rw-r--r--lib/Target/ARM/ARMTargetMachine.h18
-rw-r--r--lib/Target/CMakeLists.txt1
-rw-r--r--lib/Target/CellSPU/SPUTargetMachine.cpp3
-rw-r--r--lib/Target/CellSPU/SPUTargetMachine.h9
-rw-r--r--lib/Target/Hexagon/HexagonTargetMachine.cpp5
-rw-r--r--lib/Target/Hexagon/HexagonTargetMachine.h11
-rw-r--r--lib/Target/MBlaze/MBlazeTargetMachine.cpp2
-rw-r--r--lib/Target/MBlaze/MBlazeTargetMachine.h7
-rw-r--r--lib/Target/MSP430/MSP430FrameLowering.cpp14
-rw-r--r--lib/Target/MSP430/MSP430FrameLowering.h1
-rw-r--r--lib/Target/MSP430/MSP430RegisterInfo.cpp14
-rw-r--r--lib/Target/MSP430/MSP430RegisterInfo.h2
-rw-r--r--lib/Target/MSP430/MSP430TargetMachine.cpp2
-rw-r--r--lib/Target/MSP430/MSP430TargetMachine.h10
-rw-r--r--lib/Target/Mips/Mips16InstrInfo.cpp31
-rw-r--r--lib/Target/Mips/Mips16InstrInfo.td267
-rw-r--r--lib/Target/Mips/MipsTargetMachine.cpp2
-rw-r--r--lib/Target/Mips/MipsTargetMachine.h9
-rw-r--r--lib/Target/NVPTX/NVPTXTargetMachine.cpp3
-rw-r--r--lib/Target/NVPTX/NVPTXTargetMachine.h10
-rw-r--r--lib/Target/PowerPC/PPCISelLowering.cpp47
-rw-r--r--lib/Target/PowerPC/PPCTargetMachine.cpp3
-rw-r--r--lib/Target/PowerPC/PPCTargetMachine.h9
-rw-r--r--lib/Target/Sparc/SparcTargetMachine.cpp2
-rw-r--r--lib/Target/Sparc/SparcTargetMachine.h9
-rw-r--r--lib/Target/Target.cpp1
-rw-r--r--lib/Target/TargetTransformImpl.cpp43
-rw-r--r--lib/Target/X86/X86ISelLowering.cpp58
-rw-r--r--lib/Target/X86/X86MCInstLower.cpp18
-rw-r--r--lib/Target/X86/X86TargetMachine.cpp6
-rw-r--r--lib/Target/X86/X86TargetMachine.h17
-rw-r--r--lib/Target/X86/X86VZeroUpper.cpp2
-rw-r--r--lib/Target/XCore/XCoreTargetMachine.cpp2
-rw-r--r--lib/Target/XCore/XCoreTargetMachine.h9
-rw-r--r--lib/Transforms/IPO/BarrierNoopPass.cpp47
-rw-r--r--lib/Transforms/IPO/CMakeLists.txt1
-rw-r--r--lib/Transforms/IPO/PassManagerBuilder.cpp14
-rw-r--r--lib/Transforms/Instrumentation/AddressSanitizer.cpp8
-rw-r--r--lib/Transforms/Scalar/LoopStrengthReduce.cpp134
-rw-r--r--lib/Transforms/Scalar/SROA.cpp167
-rw-r--r--lib/Transforms/Scalar/SimplifyLibCalls.cpp47
-rw-r--r--lib/Transforms/Utils/LowerInvoke.cpp32
-rw-r--r--lib/Transforms/Utils/SimplifyLibCalls.cpp55
-rw-r--r--lib/Transforms/Vectorize/CMakeLists.txt1
-rw-r--r--lib/Transforms/Vectorize/LoopVectorize.cpp885
-rw-r--r--lib/Transforms/Vectorize/Vectorize.cpp8
-rw-r--r--lib/VMCore/CMakeLists.txt1
-rw-r--r--lib/VMCore/TargetTransformInfo.cpp27
-rw-r--r--test/CodeGen/MSP430/fp.ll17
-rw-r--r--test/CodeGen/Mips/brconeq.ll38
-rw-r--r--test/CodeGen/Mips/brconeqk.ll22
-rw-r--r--test/CodeGen/Mips/brconeqz.ll20
-rw-r--r--test/CodeGen/Mips/brconge.ll37
-rw-r--r--test/CodeGen/Mips/brcongt.ll25
-rw-r--r--test/CodeGen/Mips/brconle.ll37
-rw-r--r--test/CodeGen/Mips/brconlt.ll27
-rw-r--r--test/CodeGen/Mips/brconne.ll26
-rw-r--r--test/CodeGen/Mips/brconnek.ll25
-rw-r--r--test/CodeGen/Mips/brconnez.ll24
-rw-r--r--test/CodeGen/PowerPC/i64_fp_round.ll27
-rw-r--r--test/CodeGen/X86/2012-10-18-crash-dagco.ll61
-rw-r--r--test/CodeGen/X86/extract-concat.ll17
-rw-r--r--test/CodeGen/X86/pr14090.ll76
-rw-r--r--test/CodeGen/X86/sjlj.ll18
-rw-r--r--test/CodeGen/X86/trunc-fp2int.ll18
-rw-r--r--test/Transforms/InstCombine/strcpy-1.ll45
-rw-r--r--test/Transforms/InstCombine/strcpy-2.ll22
-rw-r--r--test/Transforms/InstCombine/strcpy_chk-1.ll54
-rw-r--r--test/Transforms/LoopVectorize/gcc-examples.ll649
-rw-r--r--test/Transforms/LoopVectorize/lit.local.cfg1
-rw-r--r--test/Transforms/LoopVectorize/non-const-n.ll38
-rw-r--r--test/Transforms/SROA/basictest.ll20
-rw-r--r--test/Transforms/SimplifyLibCalls/StrCpy.ll37
-rw-r--r--test/lit.cfg5
-rw-r--r--tools/bugpoint-passes/bugpoint.exports1
-rw-r--r--tools/llc/llc.cpp244
-rw-r--r--tools/llvm-dwarfdump/llvm-dwarfdump.cpp6
-rw-r--r--tools/lto/LTOCodeGenerator.cpp2
-rw-r--r--tools/opt/CMakeLists.txt2
-rw-r--r--tools/opt/LLVMBuild.txt2
-rw-r--r--tools/opt/Makefile2
-rw-r--r--tools/opt/opt.cpp78
-rw-r--r--unittests/ExecutionEngine/JIT/JITTest.cpp2
-rw-r--r--unittests/ExecutionEngine/JIT/Makefile7
122 files changed, 3757 insertions, 1255 deletions
diff --git a/docs/LangRef.html b/docs/LangRef.html
index 167397ff53..874e12fa44 100644
--- a/docs/LangRef.html
+++ b/docs/LangRef.html
@@ -1364,11 +1364,13 @@ target datalayout = "<i>layout specification</i>"
8-bits. If omitted, the natural stack alignment defaults to "unspecified",
which does not prevent any alignment promotions.</dd>
- <dt><tt>p:<i>size</i>:<i>abi</i>:<i>pref</i></tt></dt>
+ <dt><tt>p[n]:<i>size</i>:<i>abi</i>:<i>pref</i></tt></dt>
<dd>This specifies the <i>size</i> of a pointer and its <i>abi</i> and
- <i>preferred</i> alignments. All sizes are in bits. Specifying
- the <i>pref</i> alignment is optional. If omitted, the
- preceding <tt>:</tt> should be omitted too.</dd>
+ <i>preferred</i> alignments for address space <i>n</i>. All sizes are in
+ bits. Specifying the <i>pref</i> alignment is optional. If omitted, the
+ preceding <tt>:</tt> should be omitted too. The address space,
+ <i>n</i> is optional, and if not specified, denotes the default address
+ space 0. The value of <i>n</i> must be in the range [1,2^23).</dd>
<dt><tt>i<i>size</i>:<i>abi</i>:<i>pref</i></tt></dt>
<dd>This specifies the alignment for an integer type of a given bit
@@ -1409,6 +1411,10 @@ target datalayout = "<i>layout specification</i>"
<ul>
<li><tt>E</tt> - big endian</li>
<li><tt>p:64:64:64</tt> - 64-bit pointers with 64-bit alignment</li>
+ <li><tt>p1:32:32:32</tt> - 32-bit pointers with 32-bit alignment for
+ address space 1</li>
+ <li><tt>p2:16:32:32</tt> - 16-bit pointers with 32-bit alignment for
+ address space 2</li>
<li><tt>i1:8:8</tt> - i1 is 8-bit (byte) aligned</li>
<li><tt>i8:8:8</tt> - i8 is 8-bit (byte) aligned</li>
<li><tt>i16:16:16</tt> - i16 is 16-bit aligned</li>
diff --git a/docs/README.txt b/docs/README.txt
index 2fbbf98740..5ddd599d8a 100644
--- a/docs/README.txt
+++ b/docs/README.txt
@@ -6,7 +6,7 @@ The LLVM documentation is currently written in two formats:
* Plain HTML documentation.
* reStructured Text documentation using the Sphinx documentation generator. It
- is currently tested with Sphinx 1.1.3.
+ is currently tested with Sphinx 1.1.3.
For more information, see the "Sphinx Introduction for LLVM Developers"
document.
diff --git a/docs/ReleaseNotes.html b/docs/ReleaseNotes.html
index 75a6fd1ca1..26c5213b12 100644
--- a/docs/ReleaseNotes.html
+++ b/docs/ReleaseNotes.html
@@ -466,6 +466,18 @@ Release Notes</a>.</h1>
<p>In addition to many minor performance tweaks and bug fixes, this release
includes a few major enhancements and additions to the optimizers:</p>
+<p> Loop Vectorizer - We've added a basic loop vectorizer and we are now able
+ to vectorize small loops. The loop vectorizer is disabled by default and
+ can be enabled using the -mllvm -vectorize flags. We can vectorize this code:
+
+ <pre class="doc_code">
+ for (i=0; i&lt;n; i++) {
+ a[i] = b[i+1] + c[i+3] + i;
+ }
+ </pre>
+
+ </p>
+
<ul>
<li>...</li>
</ul>
@@ -506,6 +518,8 @@ Release Notes</a>.</h1>
We use the lifetime markers to tell the codegen that a certain alloca