summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
...
* Cleanup and refactor of malformedError() in lib/Object/MachOObjectFile.cpp .Kevin Enderby2016-05-051-71/+41
| | | | | | No functional change. llvm-svn: 268694
* SDAG: Rename Select->SelectImpl and repurpose Select as returning voidJustin Bogner2016-05-0518-57/+40
| | | | | | | | | | | | | | This is a step towards removing the rampant undefined behaviour in SelectionDAG, which is a part of llvm.org/PR26808. We rename SelectionDAGISel::Select to SelectImpl and update targets to match, and then change Select to return void and consolidate the sketchy behaviour we're trying to get away from there. Next, we'll update backends to implement `void Select(...)` instead of SelectImpl and eventually drop the base Select implementation. llvm-svn: 268693
* SDAG: Remove OPC_MarkGlueResults and associated logic. NFCJustin Bogner2016-05-051-60/+19
| | | | | | | | | This opcode never happens in practice, and yet the logic we have in place to handle it would be undefined behaviour if we ever executed it. Remove it rather than trying to refactor code that's never reached. llvm-svn: 268692
* [scan-build] fix warnings emitted on LLVM Hexagon code baseKrzysztof Parzyszek2016-05-053-1/+3
| | | | | | | | Patch by Apelete Seketeli. Differential Revision: http://reviews.llvm.org/D19968 llvm-svn: 268691
* [Hexagon] Fix the offset ranges for vector memory instructionsKrzysztof Parzyszek2016-05-051-8/+8
| | | | llvm-svn: 268690
* [PM] port Branch Frequency Analaysis pass to new PMXinliang David Li2016-05-053-0/+31
| | | | llvm-svn: 268687
* [PM] Port Interprocedural SCCP to the new pass manager.Davide Italiano2016-05-055-44/+57
| | | | llvm-svn: 268684
* [codeview] Improve some commentsReid Kleckner2016-05-051-1/+0
| | | | | | | This FIXME was already fixed, and these LF_* enum names were inconsistent. llvm-svn: 268683
* [AArch64] Remove unused MBP headers/dependency. NFC.Chad Rosier2016-05-051-3/+0
| | | | llvm-svn: 268682
* Revert http://reviews.llvm.org/D19926 as it breaks tests.Dehao Chen2016-05-052-30/+28
| | | | llvm-svn: 268681
* Revert "LTOCodeGenerator: handle correctly "unnamed" symbol"Mehdi Amini2016-05-051-1/+1
| | | | | | | | | | This reverts commit r268658. I incorrectly diagnose this as the source of an assertion during an LTO bootstrap of clang. From: Mehdi Amini <mehdi.amini@apple.com> llvm-svn: 268680
* [WebAssembly] Don't emit epilogue code in the middle of stackified code.Dan Gohman2016-05-052-1/+10
| | | | llvm-svn: 268679
* Fix CVTypeDumperImpl formatting after class renameReid Kleckner2016-05-051-39/+49
| | | | llvm-svn: 268678
* AMDGPU: Simplify control flow / conditionsMatt Arsenault2016-05-051-19/+19
| | | | llvm-svn: 268676
* Simplify CFG before assigning discriminator.Dehao Chen2016-05-052-28/+30
| | | | | | | | | | | | Summary: We need to clean up CFG before assigning discriminator to minimize the impact of optimization on debug info. Reviewers: davidxl, dblaikie, dnovillo Subscribers: dnovillo, danielcdh, llvm-commits Differential Revision: http://reviews.llvm.org/D19926 llvm-svn: 268675
* [MSan] [MIPS64] Fix vararg helper for >1 fixed argument.Marcin Koscielnicki2016-05-051-1/+2
| | | | | | | | This fixes http://llvm.org/PR27646 on Mips64. Differential Revision: http://reviews.llvm.org/D19989 llvm-svn: 268673
* Degrade assertions to a warning in LTOCodeGenerator for preserved linkonceMehdi Amini2016-05-051-2/+19
| | | | | | | | | | The assertions were assuming that the linker will not ask to preserve a global that is internal or available_externally, as it does not really make sense. In practice this break the bootstrap of clang, I degrade to a warning for now. From: Mehdi Amini <mehdi.amini@apple.com> llvm-svn: 268671
* Remove LLVM_ENABLE_TIMESTAMPSChris Bieneman2016-05-051-3/+0
| | | | | | | | | | | | | | | | | | | Summary: As per the discussion on LLVM-dev this patch proposes removing LLVM_ENABLE_TIMESTAMPS. The only complicated bit of this patch is the Windows support. On windows we used to log an error if /INCREMENTAL was passed to the linker when timestamps were disabled. With this change since timestamps in code are always disabled we will always compile on windows with /Brepro unless /INCREMENTAL is specified, and we will log a warning when /INCREMENTAL is specified to notify the user that the build will be non-deterministic. See: http://lists.llvm.org/pipermail/llvm-dev/2016-May/098990.html Reviewers: bogner, silvas, rnk Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D19892 llvm-svn: 268670
* Add a note about the "entry count" used the profile summarySean Silva2016-05-051-0/+4
| | | | | | Thanks to David Li for the clarification. llvm-svn: 268669
* [profile] Remove unneeded field in raw profile readerXinliang David Li2016-05-051-8/+6
| | | | | | Differential Revision: http://reviews.llvm.org/D19956 llvm-svn: 268667
* Touch Hexagon/CMakeLists.txt to regenerate build files, since r268641 ↵NAKAMURA Takumi2016-05-051-1/+1
| | | | | | | complains of missing HexagonAlias.td on ninja. FIXME: TableGen.cmake globs *.td(s) with wildcards for deps. It is not good. llvm-svn: 268666
* ARM: don't attempt to merge litpools referencing different PC-anchors.Tim Northover2016-05-051-3/+3
| | | | | | | | | | | | | | | | | | | | | | Given something like: ldr r0, .LCPI0_0 (== pc-rel var) add r0, pc ldr r1, .LCPI0_1 (== pc-rel var) add r1, pc we cannot combine the 2 ldr instructions and litpools because they get added to a different pc to form the correct address. I think the original logic came from a time when we fused the LDRpci/PICADD instructions into one pseudo-instruction so the PC was always immediately at-hand. That's no longer the case. Should fix general-dynamic TLS access on Linux, and quite possibly other -fPIC code that relies on litpools (e.g. v6m and -Oz compilations) though trivial tweaks of the .ll test didn't provoke anything. llvm-svn: 268662
* [Hexagon] Add aliases for vector loads/stores with no explicit offsetKrzysztof Parzyszek2016-05-051-0/+79
| | | | | | The mem(r0) instructions are treated as mem(r0+#0). llvm-svn: 268661
* Revert "[ThinLTO] Emit individual index files for distributed backends"Vitaly Buka2016-05-053-259/+71
| | | | | | | | | MemorySanitizer: use-of-uninitialized-value in lib/Bitcode/Writer/BitcodeWriter.cpp:364:70 http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux-fast/builds/12544/steps/check-llvm%20msan/logs/stdio This reverts commit 0c4a898ea550699d1b2f4fe3767251c8f9a48d52. llvm-svn: 268660
* LTOCodeGenerator: handle correctly "unnamed" symbolMehdi Amini2016-05-051-1/+1
| | | | | | | This should fix the assertions in a clang LTO bootstrap we're seeing. From: Mehdi Amini <mehdi.amini@apple.com> llvm-svn: 268658
* MachineFunction: Add a const modifier to print() parameterMatthias Braun2016-05-052-3/+4
| | | | llvm-svn: 268657
* Remove dead include. NFC.Chad Rosier2016-05-051-1/+0
| | | | llvm-svn: 268655
* Remove dead include. NFC.Chad Rosier2016-05-051-1/+0
| | | | llvm-svn: 268654
* Clean up the specific error message for a malformed Mach-O files with bad ↵Kevin Enderby2016-05-052-14/+12
| | | | | | | | | | | | | | | | | | | | | segment load commands. The existing test case in test/Object/macho-invalid.test for macho-invalid-too-small-segment-load-command has a cmdsize of 55, while being too small also it is not a multiple of 4. So when that check is added this test case will produce a different error. So I constructed a new test case that will trigger the intended error. I also changed the error message to be consistent with the other malformed Mach-O file error messages which prints the load command index. I also removed both object_error::macho_load_segment_too_small and object_error::macho_load_segment_too_many_sections from Object/Error.h as they are not needed and can just use object_error::parse_failed and let the error message string distinguish the specific error. llvm-svn: 268652
* [ValueTracking] Early exit when further analysis won't be fruitful.Chad Rosier2016-05-051-15/+30
| | | | | | | This should have NFC in the context of codegen, but may have positive implications on compile-time. llvm-svn: 268651
* AMDGPU: Uniform branch conditions can originate with intrinsicsNicolai Haehnle2016-05-051-2/+1
| | | | | | | | | | | | | | | | | Summary: Discovered by Dave Airlie, fixes an assertion in Khronos OpenGL CTS GL43-CTS.shader_storage_buffer_object.advanced-matrix. In this particular case, the buffer load intrinsic fed into a uniform conditional branch, and led the brcond lowering down the wrong path. Reviewers: tstellarAMD, arsenm Subscribers: arsenm, llvm-commits Differential Revision: http://reviews.llvm.org/D19931 llvm-svn: 268650
* AMDGPU/SI: Add support for AMD code object version 2.Tom Stellard2016-05-058-133/+6
| | | | | | | | | | | | | | Summary: Version 2 is now the default. If you want to emit version 1, use the amdgcn--amdhsa-amdcov1 triple. Reviewers: arsenm, kzhuravl Subscribers: arsenm, llvm-commits Differential Revision: http://reviews.llvm.org/D19283 llvm-svn: 268647
* X86CallFrameOptimization: make adjustCallSequence's return type voidHans Wennborg2016-05-051-7/+8
| | | | | | It always returned the same value (true). No functionality change. llvm-svn: 268645
* [Hexagon] Merge HexagonAlias.td into HexagonInstrAlias.td, NFCKrzysztof Parzyszek2016-05-053-95/+81
| | | | llvm-svn: 268641
* [ValueTracking] Improve isImpliedCondition for matching LHS and Imm RHSs.Chad Rosier2016-05-051-0/+29
| | | | llvm-svn: 268636
* [Hexagon] Handle operand type differences for A2_tfrpiKrzysztof Parzyszek2016-05-051-1/+16
| | | | | | | | | | The instruction A2_tfrpi has a 64-bit operand, while the corresponding intrinsic takes a 32-bit value. The actual value has only 8 significant bits, so the difference is only in the type used to represent it. In order to map the intrinsic to the instruction, the operand needs to be extended to the correct type. llvm-svn: 268635
* Fix unused variable warning after r268632Silviu Baranga2016-05-051-1/+0
| | | | llvm-svn: 268634
* [LV] Identify more induction PHIs by coercing expressions to AddRecExprsSilviu Baranga2016-05-052-10/+45
| | | | | | | | | | | | | | | | | | Summary: Some PHIs can have expressions that are not AddRecExprs due to the presence of sext/zext instructions. In order to prevent the Loop Vectorizer from bailing out when encountering these PHIs, we now coerce the SCEV expressions to AddRecExprs using SCEV predicates (when possible). We only do this when the alternative would be to not vectorize. Reviewers: mzolotukhin, anemet Subscribers: mssimpso, sanjoy, mzolotukhin, llvm-commits Differential Revision: http://reviews.llvm.org/D17153 llvm-svn: 268633
* [LV] Refactor the validation of PHI inductions. NFCSilviu Baranga2016-05-051-29/+48
| | | | | | | | This moves the validation of PHI inductions into a separate method, making it easier to reuse this logic. llvm-svn: 268632
* Remove bit-rotten CppBackend.James Y Knight2016-05-058-2281/+0
| | | | | | | | | | | | | | | | | This backend was supposed to generate C++ code which will re-construct the LLVM IR passed as input. This seems to me to have very marginal usefulness in the first place. However, the code has never been updated to use IRBuilder, which makes its current value negative -- people who look at the output may be steered to use the *wrong* C++ APIs to construct IR. Furthermore, it's generated code that doesn't compile since at least 2013. Differential Revision: http://reviews.llvm.org/D19942 llvm-svn: 268631
* Fix Mips Parser error reportingNirav Dave2016-05-051-27/+49
| | | | | | | | | | | | | [mips] On error, ParseDirective should always return false to signify that the directive was understood. Reviewers: dsanders, vkalintiris, sdardis Subscribers: dsanders, llvm-commits, sdardis Differential Revision: http://reviews.llvm.org/D19929 llvm-svn: 268630
* [ThinLTO] Emit individual index files for distributed backendsTeresa Johnson2016-05-053-71/+259
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: When launching ThinLTO backends in a distributed build (currently supported in gold via the thinlto-index-only plugin option), emit an individual index file for each backend process as described here: http://lists.llvm.org/pipermail/llvm-dev/2016-April/098272.html The individual index file encodes the summary and module information required for implementing the importing/exporting decisions made for a given module in the thin link step. This is in place of the current mechanism that uses the combined index to make importing decisions in each back end independently. It is an enabler for doing global summary based optimizations in the thin link step (which will be recorded in the individual index files), and reduces the size of the index that must be sent to each backend process, and the amount of work to scan it in the backends. Rather than create entirely new ModuleSummaryIndex structures (and all the included unique_ptrs) for each backend index file, a map is created to record all of the GUID and summary pointers needed for a particular index file. The IndexBitcodeWriter walks this map instead of the full index (hiding the details of managing the appropriate summary iteration in a new iterator subclass). This is more efficient than walking the entire combined index and filtering out just the needed summaries during each backend bitcode index write. Depends on D19481. Reviewers: joker.eph Subscribers: llvm-commits, joker.eph Differential Revision: http://reviews.llvm.org/D19556 llvm-svn: 268627
* [X86] Extend some Linux special cases to cover kFreeBSD.Marcin Koscielnicki2016-05-054-5/+9
| | | | | | | | | | | | Both Linux and kFreeBSD use glibc, so follow similiar code paths. Add isTargetGlibc to check for this, and use it instead of isTargetLinux in a few places. Fixes PR22248 for kFreeBSD. Differential Revision: http://reviews.llvm.org/D19104 llvm-svn: 268624
* [Coverage] Combine counts of expansion regions if there are no code regions ↵Igor Kudrin2016-05-051-16/+31
| | | | | | | | for the same area. Differential Revision: http://reviews.llvm.org/D18831 llvm-svn: 268620
* [X86] Use the right type when folding xor (truncate (shift)) -> setccDavid Majnemer2016-05-051-3/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The result type of setcc is dependent on whether or not AVX512 is present. We had an X86-specific DAG-combine which assumed that the result type should be i8 when it could be i1. This meant that we would generate illegal setccs which LowerSETCC did not like. Instead, use an appropriate type and zero extend to i8. Also, there were some scenarios where the fold should have fired but didn't because we were overly cautious about the types. This meant that we generated: shrl $31, %edi andl $1, %edi kmovw %edi, %k0 kxnorw %k0, %k0, %k1 kshiftrw $15, %k1, %k1 kxorw %k1, %k0, %k0 kmovw %k0, %eax instead of: testl %edi, %edi setns %al This fixes PR27638. llvm-svn: 268609
* LTOCodeGenerator: add linkonce(_odr) to "llvm.compiler.used" when present in ↵Mehdi Amini2016-05-051-17/+67
| | | | | | | | | | | | | | | "MustPreserve" set If the linker requested to preserve a linkonce function, we should honor this even if we drop all uses. We explicitely avoid turning them into weak_odr (unlike the first version of this patch in r267644), because the codegen can be different on Darwin: because of `llvm::canBeOmittedFromSymbolTable()` we may emit the symbol as weak_def_can_be_hidden instead of weak_definition. From: Mehdi Amini <mehdi.amini@apple.com> llvm-svn: 268607
* Revert "LTOCodeGenerator: turns linkonce(_odr) into weak_(odr) when present ↵Mehdi Amini2016-05-051-52/+19
| | | | | | | | | | | | "MustPreserve" set" This reverts commit r267644. Turning linkonce_odr into weak_odr is a sementic change on Darwin: because of `llvm::canBeOmittedFromSymbolTable()` we may emit the symbol as weak_def_can_be_hidden instead of weak_definition. From: Mehdi Amini <mehdi.amini@apple.com> llvm-svn: 268606
* ThinLTOCodeGenerator: remove useless temporary file that was emitted.Mehdi Amini2016-05-051-7/+4
| | | | | | | | This was a remaining of a previous scheme where some IPOs were taking place before we enter this code. This is not relevant anymore. From: Mehdi Amini <mehdi.amini@apple.com> llvm-svn: 268605
* [PM] Port Branch Probability Analysis pass to the new pass manager.Xinliang David Li2016-05-053-0/+20
| | | | | | Differential Revision: http://reviews.llvm.org/D19839 llvm-svn: 268601
* [PM] Port EliminateAvailableExternally pass to the new pass manager.Davide Italiano2016-05-054-29/+39
| | | | llvm-svn: 268599
OpenPOWER on IntegriCloud