summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* 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
* [Sema] Use range-based for loops. NFCCraig Topper2015-12-211-56/+39
| | | | llvm-svn: 256135
* [Cygwin] Enable TLS as emutls.NAKAMURA Takumi2015-12-216-5/+14
| | | | | | | | It resolves clang selfhosting with std::once() for Cygwin. FIXME: It may be EmulatedTLS-generic also for X86-Android. FIXME: Pass EmulatedTLS to LLVM CodeGen from Clang with -femulated-tls. llvm-svn: 256134
* check-clang-tools requires clang-headers due to test/clang-tidy.NAKAMURA Takumi2015-12-211-0/+3
| | | | | | clang-modernize provided clang-headers but it was removed. llvm-svn: 256133
* [RS4GC] Add an assert which fails if there is a (yet unsupported) addrspacecast.Manuel Jacob2015-12-211-0/+5
| | | | | | The slightly strange indentation comes from clang-format. llvm-svn: 256132
* [InstCombine] Fix indentation. NFC.Craig Topper2015-12-211-2/+2
| | | | llvm-svn: 256131
* [AVR] Added AVRCallingConv.tdDylan McKay2015-12-203-1/+67
| | | | llvm-svn: 256130
* [PGO] testing _WIN64 instead of _WIN32Xinliang David Li2015-12-201-5/+5
| | | | llvm-svn: 256129
* [PGO] Implement BOOL_CMPXCHG for WindowsXinliang David Li2015-12-201-0/+13
| | | | llvm-svn: 256128
* [X86] Use range-based for loop. NFCCraig Topper2015-12-201-3/+2
| | | | llvm-svn: 256127
* [X86] Prevent constant hoisting for a couple compare immediates that the ↵Craig Topper2015-12-202-1/+38
| | | | | | | | | | selection DAG knows how to optimize into a shift. This allows "icmp ugt %a, 4294967295" and "icmp uge %a, 4294967296" to be optimized into right shifts by 32 which can fold the immediate into the shift instruction. These patterns show up with some regularity in real code. Unfortunately, since getImmCost can't see the icmp predicate we can't be tell if we're only catching these specific cases. llvm-svn: 256126
* [FIX] Schedule generation for block exiting multiple loops.Johannes Doerfert2015-12-202-6/+71
| | | | | | This fixes bug PR25604. llvm-svn: 256125
* Compile fix: Use "&&" operator instead of "and"Michael Kruse2015-12-201-1/+1
| | | | llvm-svn: 256124
* ScopInfo: Bail out in case of complex branch structuresTobias Grosser2015-12-203-0/+209
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Scops that contain many complex branches are likely to result in complex domain conditions that consist of a large (> 100) number of conjucts. Transforming such domains is expensive and unlikely to result in efficient code. To avoid long compile times we detect this case and skip such scops. In the future we may improve this by either using non-affine subregions to hide such complex condition structures or by exploiting in certain cases properties (e.g., dominance) that allow us to construct the domains of a scop in a way that results in a smaller number improving conjuncts. Example of a code that results in complex iteration spaces: loop.header / | \ \ A0 A2 A4 \ \ / \ / \ A1 A3 \ / \ / \ | B0 B2 B4 | \ / \ / | B1 B3 ^ / \ / \ | C0 C2 C4 | \ / \ / / C1 C3 / \ / / loop backedge llvm-svn: 256123
* [X86] Add missing m64/int64 conversionsMichael Kuperstein2015-12-202-0/+14
| | | | | | | | Define the 64-bit equivalents of _m_to_int and _m_from_int. Differential Revision: http://reviews.llvm.org/D15572 llvm-svn: 256122
* [X86] Add signed aliases for popcnt intrinsicsMichael Kuperstein2015-12-202-2/+24
| | | | | | | | | The Intel manual documents both an unsigned form (_mm_popcnt_u32) and a signed form (_popcnt32) of the intrinsic. Add the missing signed form. Differential Revision: http://reviews.llvm.org/D15568 llvm-svn: 256121
* Add AVR.td and AVRRegisterInfo.tdDylan McKay2015-12-204-1/+783
| | | | | | | | | | | | | | | | | | | | | Summary: This adds the core AVR TableGen file, along with the register descriptions. Lines in AVR.td which require other TableGen files which haven't been committed yet are commented out. This is a fairly trivial patch, and should only require a quick review. I kept the line width smaller than 80 columns, but there are a few exceptions because I'm not sure how to split a string over several lines. Reviewers: stoklund Subscribers: dylanmckay, agnat Differential Revision: http://reviews.llvm.org/D14684 llvm-svn: 256120
* [ELF][MIPS] MIPS .reginfo sections handlingSimon Atanasyan2015-12-208-2/+125
| | | | | | | | | | | | | | | | | | | | | MIPS .reginfo section provides information on the registers used by the code in the object file. Linker should collect this information and write .reginfo section in the output file. This section contains a union of used registers masks taken from input .reginfo sections and final value of the `_gp` symbol. For details see the "Register Information" section in Chapter 4 in the following document: ftp://www.linux-mips.org/pub/linux/mips/doc/ABI/mipsabi.pdf The patch implements .reginfo sections handling with a couple missed features: a) it does not put output .reginfo section into the separate REGINFO segment; b) it does not merge `ri_cprmask` masks from input section. These features will be implemented later. Differential Revision: http://reviews.llvm.org/D15669 llvm-svn: 256119
* [llvm-objdump] Move COFF function to where it belongs.Davide Italiano2015-12-203-50/+51
| | | | | | | Ideally much more stuff should be moved out of llvm-objdump.cpp, but that will happen later. llvm-svn: 256118
* Fix a bug in test case -- duplicate entriesXinliang David Li2015-12-201-21/+0
| | | | llvm-svn: 256117
* Fix a latent UAF bug in profwriterXinliang David Li2015-12-201-0/+2
| | | | llvm-svn: 256116
* Fix mapping of @llvm.arm.ssat/usat intrinsics to ssat/usat instructions for ↵Weiming Zhao2015-12-206-13/+20
| | | | | | | | | | | | | | | | | Thumb2 Summary: r250697 fixed the mapping for ARM mode. We have to do the same for Thumb2 otherwise the same llvm.arm.ssat() will generate different saturating amount for ARM and Thumb. r250697: http://reviews.llvm.org/rL250697 Reviewers: rmaprath Subscribers: aemerson, llvm-commits, rengolin Differential Revision: http://reviews.llvm.org/D15653 llvm-svn: 256115
* [PGO] Improve Indexed Profile Reader efficiency Xinliang David Li2015-12-207-151/+176
| | | | | | | | | | | | | | | | | | | | | | | | | | | | With the support of value profiling added, the Indexed prof reader gets less efficient. The prof reader initialization used to be just reading the file header, but with VP support added, initialization needs to walk through all profile keys of ondisk hash table resulting in very poor locality and large memory increase (keys are stored together with the profile data in the mapped profile buffer). Even worse, when the reader is used by the compiler (not llvm-profdata too), the penalty becomes very high as compilation of each single module requires touching profile data buffer for the whole program. In this patch, the icall target values (MD5hash) are no longer eargerly converted back to name strings when the data is read into memory. New interface is added to to profile reader so that InstrProfSymtab can be lazily created for Indexed profile reader on-demand. Creating of the symtab is intended to be used by llvm-profdata tool for symbolic dumping of VP data. It can be used with compiler (for legacy out of tree uses) too but not recommended due to compile time and memory reasons mentioned above. Some other cleanups are also included: Function Addr to md5 map is now consolated into InstrProfSymtab. InstrProfStringtab is no longer used and eliminated. llvm-svn: 256114
* Minor clean up -- move large single use method out of header(NFC)Xinliang David Li2015-12-202-28/+32
| | | | llvm-svn: 256113
OpenPOWER on IntegriCloud