summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [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
* [ELF] - Fixed padding for CIE/FDE entries of .eh_frame sectionGeorge Rimar2015-12-212-12/+13
| | | | | | | | | | | | Spec says both CIE/FDE has "Padding Extra bytes to align the CIE structure to an addressing unit size boundary." https://refspecs.linuxfoundation.org/LSB_3.0.0/LSB-PDA/LSB-PDA/ehframechpt.html Patch aligns CIE/FDE entries to the size of platform pointer. Differential revision: http://reviews.llvm.org/D15637 llvm-svn: 256141
* ScopInfo: Return immediately if scop is unprofitable and marked invalidTobias Grosser2015-12-211-3/+3
| | | | | | | | | | As we already log an error when calling invalid, scops unprofitable scops are in any case marked invalid, but returning immediately safes (a tiny bit of) compile time and is consistent with our use of 'invalid' in the remainder of the file. Found by inspection. llvm-svn: 256140
* ScopInfo: Return in case we found an invalid array sizeTobias Grosser2015-12-211-1/+1
| | | | | | | | | | | Without this return we still log the incorrect array size (and do not detect this scop), but we would unnecessarily continue to verify that access functions are affine. As we do not need to do this, we can return right ahead and consequently safe compile time. This issue was found by inspection. llvm-svn: 256139
* check-llvm: Tweak the feature "timestamps" for autoconf.NAKAMURA Takumi2015-12-212-1/+2
| | | | | | Note, ENABLE_TIMESTAMPS is either 1 or 0 in Makefile.config. llvm-svn: 256138
* [MC, COFF] Unbreak support for COFF timestampsDavid Majnemer2015-12-214-1/+9
| | | | | | | | | | | | | | | | | | | Support for COFF timestamps was unintentionally broken in r246905 when it was conditionally available depending on whether or not LLVM was configured with LLVM_ENABLE_TIMESTAMPS. However, Config/config.h was never included which essentially broke the feature. Due to lax testing, the breakage was never identified until we observed strange failures during incremental links of Chromium. This issue is resolved by simply including Config/config.h in WinCOFFObjectWriter and teaching lit that the MC/COFF/timestamp.s test is conditionally supported depending on LLVM_ENABLE_TIMESTAMPS. With this in place, we can strengthen the test to ensure that it will not accidentally get broken in the future. This fixes PR25891. llvm-svn: 256137
* ScopInfo: Check for the existance of a single memory accessesTobias Grosser2015-12-212-22/+15
| | | | | | | | | | | | | | | Instead of counting all array memory accesses associated with a load instruction, we now explicitly check that the single array access that could (potentially) be associated with a load instruction does not exist. This helps to document the current behavior of Polly where load instructions can indeed have at most one associated array access. In the unlikely case this changes in the future, we add an assert for the case where two load accesses would prevent us to return a single memory access, but we still should communicate that not all array memory accesses have been removed. This addresses post-commit comments from Johannes Doerfert for commit 255776. llvm-svn: 256136
OpenPOWER on IntegriCloud