llvm-6502/lib
Benjamin Kramer 1af132dcf3 LoopVectorizer: Emit memory checks into their own basic block.
This separates the check for "too few elements to run the vector loop" from the
"memory overlap" check, giving a lot nicer code and allowing to skip the memory
checks when we're not going to execute the vector code anyways. We still leave
the decision of whether to emit the memory checks as branches or setccs, but it
seems to be doing a good job. If ugly code pops up we may want to emit them as
separate blocks too. Small speedup on MultiSource/Benchmarks/MallocBench/espresso.

Most of this is legwork to allow multiple bypass blocks while updating PHIs,
dominators and loop info.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172902 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-19 13:57:58 +00:00
..
Analysis Fix 80-col and early exit in cost model 2013-01-19 00:42:16 +00:00
Archive
AsmParser Use hexDigitValue in LLLexer. 2013-01-18 23:05:41 +00:00
Bitcode
CodeGen Split out DW_OP_addr for the split debug info DWARF5 proposal. 2013-01-18 22:11:33 +00:00
DebugInfo Fix the assembly and dissassembly of DW_FORM_sec_offset. Found this by 2013-01-17 03:00:04 +00:00
ExecutionEngine
IR If the attributes don't exist, just bail for now. 2013-01-18 21:56:07 +00:00
Linker [Linker] Kill Linker::LoadObject which is dead, and drop the BitReader dependency again. 2013-01-18 19:37:11 +00:00
MC This is a resubmittal. For some reason it broke the bots yesterday 2013-01-18 21:20:38 +00:00
Object [MC/Mach-O] Add support for linker options in Mach-O files. 2013-01-18 01:26:07 +00:00
Option
Support Add llvm::hexDigitValue to convert single characters to hex. 2013-01-18 21:45:30 +00:00
TableGen
Target On Sandybridge split unaligned 256bit stores into two xmm-sized stores. 2013-01-19 08:38:41 +00:00
Transforms LoopVectorizer: Emit memory checks into their own basic block. 2013-01-19 13:57:58 +00:00
CMakeLists.txt
LLVMBuild.txt
Makefile