summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* Revert earlier change removing setPreservesCFG from instcombine (r221223) andMark Heffernan2014-11-042-4/+3
| | | | | | | | | | change LoopSimplifyPass to be !isCFGOnly. The motivation for the earlier patch (r221223) was that LoopSimplify is not preserved by instcombine though setPreservesCFG indicates that it is. This change fixes the issue by making setPreservesCFG no longer imply LoopSimplifyPass, and is therefore less invasive. llvm-svn: 221311
* for Siva Chandra: Fix compilation of StringPrinter.cpp with GCC. ↵Shawn Best2014-11-041-95/+105
| | | | | | Differential Revision: http://reviews.llvm.org/D6122 llvm-svn: 221310
* Use backslashes to escape spaces and other backslashes in -dwarf-debug-flags.Bob Wilson2014-11-042-3/+25
| | | | | | | | | | The command line options are specified in a space-separated list that is an argument to -dwarf-debug-flags, so that breaks if there are spaces in the options. This feature came from Apple's internal version of GCC, so I went back to check how llvm-gcc handled this and matched that behavior. rdar://problem/18775420 llvm-svn: 221309
* [AArch64] Use the correct register class for ORR.Juergen Ributzka2014-11-042-2/+19
| | | | | | | | | While fixing up the register classes in the machine combiner in a previous commit I missed one. This fixes the last one and adds a test case. llvm-svn: 221308
* Revert "[mips] Add names and tests for the hardware registers"Rafael Espindola2014-11-0410-266/+8
| | | | | | | | | | | | | This reverts commit r221299. The tests LLVM :: MC/Disassembler/Mips/mips32.txt LLVM :: MC/Disassembler/Mips/mips32_le.txt were failing. llvm-svn: 221307
* Provide gmlt-like inline scope information in the skeleton CU to facilitate ↵David Blaikie2014-11-047-32/+195
| | | | | | | | | | | | | | | | | | | | | | | | | | | symbolication without needing the .dwo files Clang -gsplit-dwarf self-host -O0, binary increases by 0.0005%, -O2, binary increases by 25%. A large binary inside Google, split-dwarf, -O0, and other internal flags (GDB index, etc) increases by 1.8%, optimized build is 35%. The size impact may be somewhat greater in .o files (I haven't measured that much - since the linked executable -O0 numbers seemed low enough) due to relocations. These relocations could be removed if we taught the llvm-symbolizer to handle indexed addressing in the .o file (GDB can't cope with this just yet, but GDB won't be reading this info anyway). Also debug_ranges could be shared between .o and .dwo, though ideally debug_ranges would get a schema that could used index(+offset) addressing, and move to the .dwo file, then we'd be back to sharing addresses in the address pool again. But for now, these sizes seem small enough to go ahead with this. Verified that no other DW_TAGs are produced into the .o file other than subprograms and inlined_subroutines. llvm-svn: 221306
* Move cross-unit DIE caching to the DwarfFile level, so it doesn't interfere ↵David Blaikie2014-11-043-14/+14
| | | | | | with fission-gmlt data and produce skeleton<>full unit cross referencing. llvm-svn: 221305
* Don't produce relocations for a difference in a section with no symbols.Rafael Espindola2014-11-043-7/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | We were producing a relocation for ---------------- .section foo,bar La: Lb: .long La-Lb -------------- but not for --------------------- .section foo,bar zed: La: Lb: .long La-Lb ---------------- This patch handles the case where both fragments are part of the first atom in a section and there is no corresponding symbol to that atom. This fixes pr21328. llvm-svn: 221304
* [PECOFF] Fix symbols in module-definition file.Rui Ueyama2014-11-042-7/+25
| | | | llvm-svn: 221303
* [TSan] Refactor/simplify ReportLocation structure.Alexey Samsonov2014-11-045-46/+38
| | | | | | | | | | | | # Make DataInfo (describing a global) a member of ReportLocation to avoid unnecessary copies and allocations. # Introduce a constructor and a factory method, so that all structure users don't have to go to internal allocator directly. # Remove unused fields (file/line). No functionality change. llvm-svn: 221302
* [mach-o] remove __compact_unwind atoms once __unwind_info has been generatedTim Northover2014-11-048-16/+28
| | | | | | | | | | The job of the CompactUnwind pass is to turn __compact_unwind data (and __eh_frame) into the compressed final form in __unwind_info. After it's done, the original atoms are no longer relevant and should be deleted (they cause problems during actual execution, quite apart from the fact that they're not needed). llvm-svn: 221301
* [mips] Move COP2 & COP3 load/store instructions from MipsInstrFPU.td to ↵Vasileios Kalintiris2014-11-042-56/+54
| | | | | | | | | | | | | | MipsInstrInfo.td. NFC. Reviewers: dsanders Reviewed By: dsanders Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D5843 llvm-svn: 221300
* [mips] Add names and tests for the hardware registersVasileios Kalintiris2014-11-0410-8/+266
| | | | | | | | | | | | Reviewers: dsanders Reviewed By: dsanders Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D5763 llvm-svn: 221299
* Fix a problem where ValueObjectVariable was not correctly setting its 'has ↵Enrico Granata2014-11-044-0/+86
| | | | | | value changed' flag for scalar valued variables. This fixes rdar://17851144 llvm-svn: 221298
* Correct the usage of DataInfo structure in TSanAlexey Samsonov2014-11-043-3/+13
| | | | llvm-svn: 221297
* [X86] Add 'FeatureSlowSHLD' to cpu 'bdver3'. Also explicit set FeatureAVX ↵Andrea Di Biagio2014-11-041-8/+11
| | | | | | | | | | | | | | | | | and FeatureSSE4A for all the bdver* cpus. This patch adds 'FeatureSlowSHLD' to 'bdver3'. According to the official AMD optimization guide for amdfam15: "Using alternative code in place of SHLD achieves lower overall latency and requires fewer execution resources. The 32-bit and 64-bit forms of ADD, ADC, SHR, and LEA (except 16-bit form) are DirectPath instructions, while SHLD is a VectorPath instruction." This patch also explicitly sets feature AVX and SSE4A for all the bdver* cpus. This part of the patch is a non-functional change and it is mainly done for clarity reasons (Both XOP and FMA4 already imply AVX and SSE4A). llvm-svn: 221296
* ErrorOr: Be more explicit in the implicit conversion to bool docsJustin Bogner2014-11-041-3/+3
| | | | llvm-svn: 221295
* [TSan] Make ReportStack contain __sanitizer::AddressInfo object.Alexey Samsonov2014-11-046-82/+64
| | | | | | | | | | AddressInfo contains the results of symbolization. Store this object directly in the symbolized stack, instead of copying data around and making unnecessary memory allocations. No functionality change. llvm-svn: 221294
* [PBQP] Callee saved regs should have a higher cost than scratch regsArnaud A. de Grandmaison2014-11-042-0/+107
| | | | | | | | | | | Registers are not all equal. Some are not allocatable (infinite cost), some have to be preserved but can be used, and some others are just free to use. Ensure there is a cost hierarchy reflecting this fact, so that the allocator will favor scratch registers over callee-saved registers. llvm-svn: 221293
* [PBQP] Tweak spill costs and coalescing benefitsArnaud A. de Grandmaison2014-11-044-12/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch improves how the different costs (register, interference, spill and coalescing) relates together. The assumption is now that: - coalescing (or any other "side effect" of reg alloc) is negative, and instead of being derived from a spill cost, they use the block frequency info. - spill costs are in the [MinSpillCost:+inf( range - register or interference costs are in [0.0:MinSpillCost( or +inf The current MinSpillCost is set to 10.0, which is a random value high enough that the current constraint builders do not need to worry about when settings costs. It would however be worth adding a normalization step for register and interference costs as the last step in the constraint builder chain to ensure they are not greater than SpillMinCost (unless this has some sense for some architectures). This would work well with the current builder pipeline, where all costs are tweaked relatively to each others, but could grow above MinSpillCost if the pipeline is deep enough. The current heuristic is tuned to depend rather on the number of uses of a live interval rather than a density of uses, as used by the greedy allocator. This heuristic provides a few percent improvement on a number of benchmarks (eembc, spec, ...) and will definitely need to change once spill placement is implemented: the current spill placement is really ineficient, so making the cost proportionnal to the number of use is a clear win. llvm-svn: 221292
* R600/SI: Rename div_scale dest operands to match documentationMatt Arsenault2014-11-041-2/+2
| | | | llvm-svn: 221291
* Make helper function static. NFC.Benjamin Kramer2014-11-041-1/+2
| | | | llvm-svn: 221290
* AArch64: Pattern match integer vector abs like we do on ARM.Benjamin Kramer2014-11-042-0/+92
| | | | | | This kind of pattern is emitted by the loop vectorizer. llvm-svn: 221289
* [asan] [mips] changed ShadowOffset32 for systems having 16kb PageSize; patch ↵Kostya Serebryany2014-11-042-7/+7
| | | | | | by Kumar Sukhani llvm-svn: 221288
* [Sanitizer] Get rid of unnecessary allocations in StripModuleName. NFC.Alexey Samsonov2014-11-045-25/+15
| | | | llvm-svn: 221287
* Fix the build for LLVM changesEnrico Granata2014-11-041-1/+4
| | | | llvm-svn: 221286
* Since the file has both ppc and ppc64 tests in it rename it.Roman Divacky2014-11-041-0/+0
| | | | llvm-svn: 221285
* Rewrite the test to not require asserts.Roman Divacky2014-11-041-72/+72
| | | | llvm-svn: 221284
* [TSan] Keep original function and filename in ReportStack.Alexey Samsonov2014-11-042-12/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | TSan used to do the following transformations with data obtained from the symbolizer: 1) Strip "__interceptor_" prefix from function name. 2) Use "strip_path_prefix" runtime flag to strip filepath. Now these transformations are performed right before the stack trace is printed, and ReportStack structure contains original information. This seems like a right thing to do - stripping is a detail of report formatting implementation, and should belong there. We should, for example, use original path to source file when we apply suppressions. This change also make "strip_path_prefix" flag behavior in TSan consistent with all the other sanitizers - now it should actually match *the prefix* of path, not some substring. E.g. earlier TSan would turn "/usr/lib/libfoo.so" into "libfoo.so" even if strip_path_prefix was "/lib/". Finally, strings obtained from symbolizer come from internal allocator, and "stripping" them early by incrementing a "char*" ensures they can never be properly deallocated, which is a bug. llvm-svn: 221283
* Remove unused DisableRedZone option.Rafael Espindola2014-11-041-5/+0
| | | | | | Patch by Steve King. llvm-svn: 221282
* InstSimplify: Fold a hasNoSignedWrap() call into a match() expressionDavid Majnemer2014-11-041-2/+1
| | | | | | No functionality change intended, it's just a little more concise. llvm-svn: 221281
* InstSimplify: Fold a hasNoUnsignedWrap() call into a match() expressionDavid Majnemer2014-11-041-2/+1
| | | | | | No functionality change intended, it's just a little more concise. llvm-svn: 221280
* Use @rpath as LC_ID_DYLIB for ASan dylib on OS XKuba Brecka2014-11-043-10/+39
| | | | | | | | Change the LC_ID_DYLIB of ASan's dynamic libraries on OS X to be set to "@rpath/libclang_rt.asan_osx_dynamic.dylib" and similarly for iossim. Clang driver then sets the "-rpath" to be the real path to where clang currently has the dylib (because clang uses the relative path to its current executable). This means if you move the compiler or install the binary release, -fsanitize=address will link to the proper library. Reviewed at http://reviews.llvm.org/D6018 llvm-svn: 221279
* Use @rpath as LC_ID_DYLIB for ASan dylib on OS XKuba Brecka2014-11-042-10/+1
| | | | | | | | Change the LC_ID_DYLIB of ASan's dynamic libraries on OS X to be set to "@rpath/libclang_rt.asan_osx_dynamic.dylib" and similarly for iossim. Clang driver then sets the "-rpath" to be the real path to where clang currently has the dylib (because clang uses the relative path to its current executable). This means if you move the compiler or install the binary release, -fsanitize=address will link to the proper library. Reviewed at http://reviews.llvm.org/D6018 llvm-svn: 221278
* [mips] Improve support for the .set mips16/nomips16 assembler directives.Toma Tabacu2014-11-042-6/+32
| | | | | | | | | | | | | | | | | | | Summary: Appropriately set/clear the FeatureBit for Mips16 when these assembler directives are used and also emit ".set nomips16" (previously, only ".set mips16" was being emitted). These improvements allow for better testing of the .cpload/.cprestore assembler directives (which are not supposed to work when Mips16 is enabled). Test Plan: The test is bare-bones because there are no MC tests for Mips16 instructions (there's only one, which checks that the Mips16 ELF header flag gets set), and that suggests to me that it has not been implemented yet in the IAS. Reviewers: dsanders Reviewed By: dsanders Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D5462 llvm-svn: 221277
* [Stackmaps] Make test less fragile. NFC.Juergen Ributzka2014-11-041-2/+2
| | | | llvm-svn: 221276
* Mark another test as UNSUPPORTED with ASAN and MSANEric Fiselier2014-11-041-0/+2
| | | | llvm-svn: 221275
* remove function names from comments; NFCSanjay Patel2014-11-041-39/+35
| | | | llvm-svn: 221274
* fix typo in commentSanjay Patel2014-11-041-1/+1
| | | | llvm-svn: 221273
* [clang-tidy] Don't print a message if there's no error.Alexander Kornienko2014-11-041-2/+3
| | | | llvm-svn: 221272
* Re-enable this test on Windows since it passes with GnuWin32 env.exe.Yaron Keren2014-11-041-5/+6
| | | | llvm-svn: 221271
* Disable 3 tests in llvm/test/Transforms/GCOVProfiling/ for now. Investigating.NAKAMURA Takumi2014-11-043-0/+6
| | | | llvm-svn: 221270
* Remove "REQUIRES:shell" from tests. They work for me.NAKAMURA Takumi2014-11-0412-19/+0
| | | | llvm-svn: 221269
* [yaml2obj] Allow yaml2obj tool to recognize EF_MIPS_NAN2008 flagSimon Atanasyan2014-11-042-2/+5
| | | | llvm-svn: 221268
* clang/test/Tooling: Remove mention to PR15590 out of a couple of tests. They ↵NAKAMURA Takumi2014-11-042-6/+0
| | | | | | are suppressed with another issue. llvm-svn: 221267
* clang/test/Tooling: [PR15590] Avoid backslashes in JSON. Should work on win32.NAKAMURA Takumi2014-11-043-15/+3
| | | | llvm-svn: 221266
* Re-enable tests in llvm/test/Object, corresponding to line_iterator'sNAKAMURA Takumi2014-11-045-15/+0
| | | | | | change in r221153. llvm-svn: 221265
* clang/test/VFS/umbrella-mismatch.m: Let it work on win32 to avoid ↵NAKAMURA Takumi2014-11-041-2/+1
| | | | | | | backslashes in yaml. FIXME: Is it intentional? s;OUT_DIR;%/S/Inputs; llvm-svn: 221264
* clang/test/Coverage/html-diagnostics.c: Use find(1) to avoid globbing.NAKAMURA Takumi2014-11-041-4/+1
| | | | llvm-svn: 221263
* llvm/test/Transforms/GCOVProfiling/linezero.ll: Use %/T instead of %T in ↵NAKAMURA Takumi2014-11-041-2/+1
| | | | | | regex. This works on win32. llvm-svn: 221262
OpenPOWER on IntegriCloud