summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* [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
* Revert r219171, "llvm/test/lit.cfg: Suppress dwarf stuff for targeting ↵NAKAMURA Takumi2015-12-201-2/+1
| | | | | | | | x86_64-mingw32 while investigating since r219108." It has been fixed since r219280 by David Majnemer. llvm-svn: 256112
* ThreadPool unittests: do not hold mutex when calling condition_variable:notify()Mehdi Amini2015-12-191-11/+11
| | | | | From: Mehdi Amini <mehdi.amini@apple.com> llvm-svn: 256111
* Nonnull elements in OperandBundleCallSites are not all InstructionsSanjoy Das2015-12-193-5/+40
| | | | | | | | | | `CloneAndPruneIntoFromInst` sometimes RAUW's dead instructions with `undef` before erasing them (to avoid deleting instructions that still have uses). This changes the `WeakVH` in `OperandBundleCallSites` to hold an `undef`, and we need to guard for this situation in eventuality in `llvm::InlineFunction`. llvm-svn: 256110
* [Deopt bundles] Fix a test caseSanjoy Das2015-12-191-1/+1
| | | | | | | The `CHECK-NOT` line was incorrect, and would not have caught a breakage. llvm-svn: 256109
* [llvm-objdump] Fail early if we can't parse the object header.Davide Italiano2015-12-191-4/+5
| | | | llvm-svn: 256108
* Delete APIs that have been deprecated since 2010.Rafael Espindola2015-12-193-66/+4
| | | | llvm-svn: 256107
* The PS4 baton passes.Paul Robinson2015-12-191-4/+4
| | | | llvm-svn: 256106
* Assert that we have all use/users in the getters.Rafael Espindola2015-12-197-23/+96
| | | | | | | | | | | | | | An error that is pretty easy to make is to use the lazy bitcode reader and then do something like if (V.use_empty()) The problem is that uses in unmaterialized functions are not accounted for. This patch adds asserts that all uses are known. llvm-svn: 256105
* Driver part of debugger tuning.Paul Robinson2015-12-197-42/+153
| | | | | | | | | | | | | | | | Adds driver options named -glldb and -gsce to mean -g plus tuning for lldb and SCE debuggers respectively; the existing -ggdb option does the same for gdb. Existing options -ggdb0, -ggdb1 etc. unpack into -ggdb -g<N>. (There will not be -glldb<N> or -gsce<N> options.) The tuning gets a target-specific default in the driver, and is passed into cc1 with the new -debugger-tuning option. As fallout, fixes where '-gsplit-dwarf -g0' would ignore the -g0 part on Linux. Differential Revision: http://reviews.llvm.org/D15651 llvm-svn: 256104
* [PGO] Fix build failure with MSVCXinliang David Li2015-12-191-10/+8
| | | | llvm-svn: 256103
* WebAssembly: add vtable testJF Bastien2015-12-191-0/+171
| | | | | | The test will mainly be useful to check that the .s file assembles and relocates properly because vtables reference functions in their data section. llvm-svn: 256102
* Remove unnecessary casts. NFC.Manuel Jacob2015-12-191-6/+5
| | | | llvm-svn: 256101
* Remove double blanks. NFC.Manuel Jacob2015-12-191-7/+7
| | | | llvm-svn: 256100
* Improve InstrProfSymtab test coverageXinliang David Li2015-12-191-0/+27
| | | | llvm-svn: 256099
* SelectionDAG: Cleanup integer bin op promotion functions.Matt Arsenault2015-12-192-34/+17
| | | | | | | SDIV and UDIV had special handling, but this is the same handling that min/max need. llvm-svn: 256098
* [unittests] ThreadPool: Remove redundant loop, NFCVedant Kumar2015-12-191-4/+2
| | | | llvm-svn: 256097
* [unittests] ThreadPool: Guard updates to MainThreadReadyVedant Kumar2015-12-191-12/+16
| | | | llvm-svn: 256096
* Re-reapply "[IR] Move optional data in llvm::Function into a hungoff uselist"Vedant Kumar2015-12-198-168/+92
| | | | | | | | | | | | | | | | | Make personality functions, prefix data, and prologue data hungoff operands of Function. This is based on the email thread "[RFC] Clean up the way we store optional Function data" on llvm-dev. Thanks to sanjoyd, majnemer, rnk, loladiro, and dexonsmith for feedback! Includes a fix to scrub value subclass data in dropAllReferences. Does not use binary literals. Differential Revision: http://reviews.llvm.org/D13829 llvm-svn: 256095
* Revert "Reapply "[IR] Move optional data in llvm::Function into a hungoff ↵Vedant Kumar2015-12-198-92/+168
| | | | | | | | | | uselist"" This reverts commit r256093. This broke lld-x86_64-win7 because of -Werror,-Wc++1y-extensions. llvm-svn: 256094
* Reapply "[IR] Move optional data in llvm::Function into a hungoff uselist"Vedant Kumar2015-12-198-168/+92
| | | | | | | | | | | | | | | | Make personality functions, prefix data, and prologue data hungoff operands of Function. This is based on the email thread "[RFC] Clean up the way we store optional Function data" on llvm-dev. Thanks to sanjoyd, majnemer, rnk, loladiro, and dexonsmith for feedback! Includes a fix to scrub value subclass data in dropAllReferences. Differential Revision: http://reviews.llvm.org/D13829 llvm-svn: 256093
* [PGO] Add hash to name mapping in InstrProfSymtabXinliang David Li2015-12-192-4/+66
| | | | | | | | | Creator and lookup interfaces are added to this symtab class. The new interfaces will be used by InstrProf Readers and writer. A unit test is also added for the new APIs. llvm-svn: 256092
OpenPOWER on IntegriCloud