summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Tweak myriad-toolchain test.James Y Knight2015-12-211-2/+2
| | | | | | | The test failed when run on a SPARC host, since it was finding the native gcc installation by accident. llvm-svn: 256191
* Reapply "[CodeGen] Fix assignments of inline layouts into the byref structure"Vedant Kumar2015-12-213-0/+20
| | | | | | | | | | | | | | | | | | | When using blocks, a byref structure is created to represent the closure. The "byref.layout" field of this structure is an i8*. However, some 'inline' layouts are represented as i64's, not i8*'s. Prior to r246985 we cast the i64 'inline' layout to an i8* before assigning it into the byref structure. This patch brings the cast back and adds a regression test. The original version of this patch was too invasive. This version only adds the cast to BuildByrefLayout. Differential Revision: http://reviews.llvm.org/D15674 rdar://23713871 llvm-svn: 256190
* Remove unnecessary cast.Rafael Espindola2015-12-211-1/+1
| | | | llvm-svn: 256189
* Fix PR24563 (LiveDebugVariables unconditionally propagates all DBG_VALUEs)Adrian Prantl2015-12-213-54/+138
| | | | | | | | | | | | | | | | LiveDebugVariables unconditionally propagates all DBG_VALUE down the dominator tree, which happens to work fine if there already is another DBG_VALUE or the DBG_VALUE happends to describe a single-assignment vreg but is otherwise wrong if the DBG_VALUE is coming from only one of the predecessors. In r255759 we introduced a proper data flow analysis scheduled after LiveDebugVariables that correctly propagates DBG_VALUEs across basic block boundaries. With the new pass in place, the incorrect propagation in LiveDebugVariables can be retired witout loosing any of the benefits where LiveDebugVariables happened to do the right thing. llvm-svn: 256188
* Convert the CodeGen/ARM/sched-it-debug-nodes.ll testcase from IR -> MIR.Adrian Prantl2015-12-212-88/+160
| | | | | | | NFC PR24563 llvm-svn: 256187
* Revert "[CodeGen] Fix assignments of inline layouts into the byref structure"Vedant Kumar2015-12-213-20/+1
| | | | | | This reverts commit r256185. It breaks CodeGenObjC/fragile-arc.m. llvm-svn: 256186
* [CodeGen] Fix assignments of inline layouts into the byref structureVedant Kumar2015-12-213-1/+20
| | | | | | | | | | | | | | When using blocks, a byref structure is created to represent the closure. The "byref.layout" field of this structure is an i8*. However, some 'inline' layouts are represented as i64's, not i8*'s. Prior to r246985 we cast the i64 'inline' layout to an i8* before assigning it into the byref structure. This patch brings the cast back and adds a regression test. rdar://23713871 llvm-svn: 256185
* [compiler-rt] [tsan] Add support for PIE build on AArch64Adhemerval Zanella2015-12-213-6/+68
| | | | | | | | | | | | | | | | | | | This patch adds PIE executable support for aarch64-linux. It adds two more segments: - 0x05500000000-0x05600000000: 39-bits PIE program segments - 0x2aa00000000-0x2ab00000000: 42-bits PIE program segments Fortunately it is possible to use the same transformation formula for the new segments range with some adjustments in shadow to memory formula (it adds a constant offset based on the VMA size). A simple testcase is also added, however it is disabled on x86 due the fact it might fail on newer kernels [1]. [1] https://git.kernel.org/linus/d1fd836dcf00d2028c700c7e44d2c23404062c90 llvm-svn: 256184
* Teach ARMLoadStoreOptimizer to ignore DBG_VALUE instructions when mergingAdrian Prantl2015-12-212-1/+170
| | | | | | | | | instructions. As noted in PR24563. rdar://problem/23963293 llvm-svn: 256183
* [asan] fix fopen interceptor to not crash if path is NULLKostya Serebryany2015-12-212-1/+7
| | | | llvm-svn: 256182
* Delete dead typedefs.Rafael Espindola2015-12-211-3/+0
| | | | llvm-svn: 256181
* Refactor duplicated code. NFC.Rafael Espindola2015-12-213-14/+24
| | | | llvm-svn: 256180
* fix leak in a test, make the sanitizer bot greenKostya Serebryany2015-12-211-1/+2
| | | | llvm-svn: 256179
* AMDGPU/SI: Fix encoding for FLAT_SCRATCH registers on VITom Stellard2015-12-216-21/+84
| | | | | | | | | | | | | | | Summary: These register has different encodings on CI and VI, so we add pseudo FLAT_SCRACTH registers to be used before MC, and subtarget specific registers to be used by the MC layer. Reviewers: arsenm Subscribers: arsenm, llvm-commits Differential Revision: http://reviews.llvm.org/D15661 llvm-svn: 256178
* AMDGPU/SI: Change assembly name for flat scratch registers to flat_scratchTom Stellard2015-12-211-3/+3
| | | | | | This matches what the assembler accepts. llvm-svn: 256177
* [AArch64] Add additional extract-extend patterns for smovMatthew Simpson2015-12-212-9/+15
| | | | | | | | | | | | | This patch adds to the target description two additional patterns for matching extract-extend operations to SMOV. The patterns catch the v16i8-to-i64 and v8i16-to-i64 cases. The existing patterns miss these cases because the extracted elements must first be legalized to i32, resulting in any_extend nodes. This was originally implemented as a DAG combine (r255895), but was reverted due to failing out-of-tree tests. llvm-svn: 256176
* clang-format: Properly set the BlockKind for more blocks.Daniel Jasper2015-12-212-2/+10
| | | | | | | | | | | | | | | Before: void f() { struct Dummy { }; f(); } After: void f() { struct Dummy {}; f(); } llvm-svn: 256175
* Add testcase for r256161 (PR25907)Teresa Johnson2015-12-211-0/+28
| | | | llvm-svn: 256174
* Remove extra whitespace. NFC.Chad Rosier2015-12-211-3/+3
| | | | llvm-svn: 256173
* [ELF][MIPS] Support some of R_MIPS_PCxxx relocationsSimon Atanasyan2015-12-212-0/+96
| | | | | | | The patch adds support for R_MIPS_PC16, R_MIPS_PC19_S2, R_MIPS_PC21_S2, R_MIPS_PC26_S2, R_MIPS_PCHI16, R_MIPS_PCLO16 relocations handling. llvm-svn: 256172
* [ThinLTO] Rename variable to reflect bulk importing change (NFC)Teresa Johnson2015-12-211-10/+11
| | | | llvm-svn: 256171
* clang-format: Only consider the first #include that looks right to beDaniel Jasper2015-12-212-3/+17
| | | | | | the main #include. llvm-svn: 256170
* [WebAssembly] Convert a regular for loop to a range-based for loop.Dan Gohman2015-12-211-2/+1
| | | | llvm-svn: 256169
* [WebAssembly] Clean up comments and fix a missing #include dependency.Dan Gohman2015-12-211-13/+7
| | | | llvm-svn: 256168
* [WebAssembly] Remove an unneeded empty destructor.Dan Gohman2015-12-211-4/+0
| | | | llvm-svn: 256167
* [WebAssembly] Enclose the operand variables for load and store instructions ↵Dan Gohman2015-12-211-23/+23
| | | | | | | | | in braces. This allows the AsmMatcherEmitter to properly tokenize the AsmStrings for load and store instructions. This is a step towards asm parsing. llvm-svn: 256166
* [WebAssembly] Mark the ARGUMENT pseudo-instructions as CodeGenOnly.Dan Gohman2015-12-211-1/+1
| | | | llvm-svn: 256165
* [WebAssembly] Add some comments and make some minor source cleanups.Dan Gohman2015-12-211-3/+4
| | | | llvm-svn: 256164
* Teach MCOperand::print how to print FPImm operands.Dan Gohman2015-12-211-0/+2
| | | | llvm-svn: 256163
* Remove unused functions from ModuleLinker (NFC)Teresa Johnson2015-12-211-54/+0
| | | | | | | Remove a couple ModuleLinker methods and a related static function that are no longer used after the linker split. llvm-svn: 256162
* Remove overly strict new assert in BitcodeReader.Teresa Johnson2015-12-211-16/+1
| | | | | | | | | | This fixes a bug introduced by the ThinLTO metadata linking patch r255909. The assert is overly-strict and while useful in development of the patch, doesn't seem interesting to keep. Fixes PR25907. llvm-svn: 256161
* Revert "[AArch64] Promote loads from stores"Jun Bum Lim2015-12-214-951/+8
| | | | | | This reverts commit r256004 due to a failure in cortex-a53. llvm-svn: 256160
* [LIR] Refactor code to enable future patch. NFC.Chad Rosier2015-12-211-41/+41
| | | | llvm-svn: 256159
* [AArch64] Enable PostRAScheduler for AArch64 generic build.Chad Rosier2015-12-2122-30/+31
| | | | | | | | | Disable post-ra scheduler for perturbed tests to appease the bots and to preserve the history of the tests. http://reviews.llvm.org/D15652 llvm-svn: 256158
* AVX512BW: Enable AND/OR/XOR vector byte/word paked operation by promoting to ↵Igor Breger2015-12-212-29/+144
| | | | | | qword that natively suppored. llvm-svn: 256157
* [llvm-objdump] Use appropriate helper. NFC.Davide Italiano2015-12-211-2/+1
| | | | llvm-svn: 256156
* Implemented Support of IA interrupt and exception handlers:Amjad Aboud2015-12-2116-198/+485
| | | | | | | | http://lists.llvm.org/pipermail/cfe-dev/2015-September/045171.html Differential Revision: http://reviews.llvm.org/D15567 llvm-svn: 256155
* clang-format: [JS] Change Google-style default for aligning operands.Daniel Jasper2015-12-212-8/+9
| | | | | | The style guide allows both, but apparently, this is the more dominant use. llvm-svn: 256154
* clang-format: Only try to find the "main" include in the first block ofDaniel Jasper2015-12-212-1/+17
| | | | | | includes. llvm-svn: 256153
* [mips][microMIPS] Implement DERET and DI instructions and check size operand ↵Zlatko Buljan2015-12-2119-69/+126
| | | | | | | | for EXT and DEXT* instructions Differential Revision: http://reviews.llvm.org/D15570 llvm-svn: 256152
* Adjust formatting to clang-format changes in 256149Tobias Grosser2015-12-218-8/+8
| | | | llvm-svn: 256151
* [scan-view] replace deprecated optparse with argparseAlexander Kornienko2015-12-211-45/+48
| | | | | | | | | | | | | | Summary: scan-view migrated from optparse deprecated Python module to its replacement (argparse) and resolved few conflicts with pep8 Reviewers: ddunbar, aaron.ballman, dcoughlin, jroelofs, zaks.anna Subscribers: cfe-commits Patch by Kirill Bobyrev! Differential Revision: http://reviews.llvm.org/D15370 llvm-svn: 256150
* ScopDetect: Extract profitability check into subfunctionTobias Grosser2015-12-212-13/+32
| | | | | | | | | | | | .. and add some documentation. We also simplify the code by dropping an early check that is also covered by the the later checks. This might have a small compile time impact, but as the scops that are skipped are small we should probably only add this back in the unlikely case that this has a notable compile-time cost. No functional change intended. llvm-svn: 256149
* clang-format: Extend detection of the "main" #include to use the filenameDaniel Jasper2015-12-212-23/+41
| | | | | | | | | | | Before, the first (non-system) header in a file was considered to be the main include. This is conservative as it makes clang-format change the #include order less often. Instead implement some basic usage of the filename itself. With this patch, clang-format considers every header to be a main include if the header file's basename is a prefix to the filename the #include is in. llvm-svn: 256148
* Fix emulation of the thumb str instructionTamas Berghammer2015-12-211-2/+10
| | | | llvm-svn: 256147
* [Driver] Pass -O* to the gold plugin via -plugin-optJames Molloy2015-12-212-3/+19
| | | | | | The gold plugin understands -O0..-O3, but these are not currently being passed to it. llvm-svn: 256146
* [ELF] - fixed not properly handled @GOTTPOFF relocation against local symbolsGeorge Rimar2015-12-214-56/+107
| | | | | | | | | | | | | | This patch changes sequence of applying relocations, moving tls optimized relocation handling code before code for other locals. Without that change relocation @GOTTPOFF against local symbol caused runtime error ("unrecognized reloc ..."). That change also should fix other tls optimized relocations, but I did not check them, that's a field for another patch. R_X86_64_GOTTPOFF relocations against locals can be found when linking against libc.a(malloc.o): 000000000036 000600000016 R_X86_64_GOTTPOFF 0000000000000000 libc_tsd_MALLOC - 4 000000000131 000600000016 R_X86_64_GOTTPOFF 0000000000000000 libc_tsd_MALLOC - 4 Differential revision: http://reviews.llvm.org/D15581 llvm-svn: 256145
* [ELF] - Implemented R_*_IRELATIVE relocations for x86, x64 targets.George Rimar2015-12-2110-5/+401
| | | | | | | | | | | This relocation is similar to R_*_RELATIVE except that the value used in this relocation is the program address returned by the function, which takes no arguments, at the address of the result of the corresponding R_*_RELATIVE relocation as specified in the processor-specific ABI. The purpose of this relocation to avoid name lookup for locally defined STT_GNU_IFUNC symbols at load-time. More info can be found in ifunc.txt from https://sites.google.com/site/x32abi/documents. Differential revision: http://reviews.llvm.org/D15235 llvm-svn: 256144
* [ELF] - R_386_GOTOFF relocation implemented.George Rimar2015-12-216-2/+86
| | | | | | | | | | | R_386_GOTOFF is calculated as S + A - GOT, where: S - Represents the value of the symbol whose index resides in the relocation entry. A - Represents the addend used to compute the value of the relocatable field. GOT - Represents the address of the global offset table. Differential revision: http://reviews.llvm.org/D15383 llvm-svn: 256143
* Fix a false positive case in ContainerSizeEmpty check (PR25893).Gabor Horvath2015-12-212-0/+9
| | | | llvm-svn: 256142
OpenPOWER on IntegriCloud