summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [SPARC] Cleanup handling of the Y/ASR registers.James Y Knight2015-07-086-14/+44
| | | | | | | | | | | | | | | | | | - Implement copying ASR to/from GPR regs. - Mark ASRs as non-allocatable, so it won't try to arbitrarily use them inappropriately. - Instead of inserting explicit WRASR/RDASR nodes in the MUL/DIV routines, just do normal register copies. - Also...mark div as using Y, not just writing it. Added a test case with some code which previously died with an assertion failure (with -O0), or produced wrong code (otherwise). (Third time's the charm?) Differential Revision: http://reviews.llvm.org/D10401 llvm-svn: 241686
* Use a range loop. NFC.Rafael Espindola2015-07-081-8/+6
| | | | llvm-svn: 241685
* Revert "Fix a linker issue with clang-check on Linux."Adrian Prantl2015-07-081-2/+0
| | | | | | This reverts commit r241636 as it turned out to be unnecessary. llvm-svn: 241684
* [Hexagon] Generate "insert" instructions more aggressivelyKrzysztof Parzyszek2015-07-084-1/+1670
| | | | llvm-svn: 241683
* Revert 241681: causes Windows builds to failKrzysztof Parzyszek2015-07-084-1670/+1
| | | | llvm-svn: 241682
* [Hexagon] Generate "insert" instructions more aggressivelyKrzysztof Parzyszek2015-07-084-1/+1670
| | | | llvm-svn: 241681
* [CMake] clang-check: Prune redundant libdeps introduced in r241653.NAKAMURA Takumi2015-07-081-14/+0
| | | | llvm-svn: 241680
* Tolerate DWARF compile unit without filename.David Srbecky2015-07-081-14/+28
| | | | | | | | | | | Summary: The DW_AT_name attribute of compile unit is optional. If it is missing, try to get filename from the debug_line section. This allows the compile unit to be useful without the filename. Differential Revision: http://reviews.llvm.org/D11003 llvm-svn: 241679
* [MIPS] Add support for direct-to-nacl in ClangPetar Jovanovic2015-07-086-2/+84
| | | | | | | | | | | For Mips direct-to-nacl, the goal is to be close to le32 front-end and use Mips32EL backend. This patch defines new NaClMips32ELTargetInfo and modifies it slightly to be close to le32. It also adds necessary parts, inline with ARM and X86. Differential Revision: http://reviews.llvm.org/D10739 llvm-svn: 241678
* The LLD tests require 'llvm-lib', ensure that this is built.Simon Atanasyan2015-07-081-1/+1
| | | | llvm-svn: 241676
* [yaml2obj] Align section content using AddressAlign field's valueSimon Atanasyan2015-07-082-9/+67
| | | | | | | | Use AddressAlign field's value to properly align sections content in the yaml2obj tool. Before this change the yaml2obj ignored AddressAlign and always aligned section on 16 bytes boundary. llvm-svn: 241674
* [LAA] Merge memchecks for accesses separated by a constant offsetSilviu Baranga2015-07-086-53/+447
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: Often filter-like loops will do memory accesses that are separated by constant offsets. In these cases it is common that we will exceed the threshold for the allowable number of checks. However, it should be possible to merge such checks, sice a check of any interval againt two other intervals separated by a constant offset (a,b), (a+c, b+c) will be equivalent with a check againt (a, b+c), as long as (a,b) and (a+c, b+c) overlap. Assuming the loop will be executed for a sufficient number of iterations, this will be true. If not true, checking against (a, b+c) is still safe (although not equivalent). As long as there are no dependencies between two accesses, we can merge their checks into a single one. We use this technique to construct groups of accesses, and then check the intervals associated with the groups instead of checking the accesses directly. Reviewers: anemet Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D10386 llvm-svn: 241673
* Avoid going through Platform when creating a NativeProcessProtocol instancePavel Labath2015-07-0810-198/+77
| | | | | | | | | | | | | | | | | | | | | Summary: This commit avoids the Platform instance when spawning or attaching to a process in lldb-server. Instead, I have the server call a (static) method of NativeProcessProtocol directly. The reason for this is that I believe that NativeProcessProtocol should be decoupled from the Platform (after all, it always knows which platform it is running on, unlike the rest of lldb). Additionally, the kind of platform actions a NativeProcessProtocol instance is likely to differ greatly from the platform actions of the lldb client, so I think the separation makes sense. After this, the only dependency NativeProcessLinux has on PlatformLinux is the ResolveExecutable method, which needs additional refactoring. Reviewers: ovyalov, clayborg Subscribers: lldb-commits Differential Revision: http://reviews.llvm.org/D10996 llvm-svn: 241672
* [X86][SSE] Added (V)ROUNDSD + (V)ROUNDSS stack folding supportSimon Pilgrim2015-07-083-8/+44
| | | | llvm-svn: 241671
* [EH] Fix for clang bug 24005 - no cleanup for array of memcpy-able objects ↵Alexey Bataev2015-07-082-0/+42
| | | | | | | | | in struct (patch by Denis Zobnin) The fix is to emit cleanup for arrays of memcpy-able objects in struct if an exception is thrown later during copy-construction. Differential Revision: http://reviews.llvm.org/D10989 llvm-svn: 241670
* [yaml2obj] Use regex to match sections offsets. NFCSimon Atanasyan2015-07-082-3/+3
| | | | llvm-svn: 241669
* Revert "parser: wordsmith diagnostic message" and "parser: diagnose empty ↵David Majnemer2015-07-084-9/+8
| | | | | | | | | | | | attribute blocks" This reverts commit r239846 and r239879. They caused clang's -fms-extensions behavior to incorrectly parse lambdas and includes a testcase to ensure we don't regress again. This issue was found in PR24027. llvm-svn: 241668
* [CodeGen] Correctly handle base classes which are passed in memoryDavid Majnemer2015-07-082-2/+20
| | | | | | | | | | | We didn't correctly process the case where a base class is classified as MEMORY. This would cause us to trip over an assertion. This fixes PR24020. Differential Revision: http://reviews.llvm.org/D10907 llvm-svn: 241667
* [CodeGen] Don't crash classifying a union of an AVX vector and an intDavid Majnemer2015-07-082-0/+11
| | | | | | | | | | | | We forgot to run postMerge after decided that the union had to be classified as MEMORY. This left us with Lo == MEMORY and Hi == SSEUp which is an invalid combination. This fixes PR24021. Differential Revision: http://reviews.llvm.org/D10908 llvm-svn: 241666
* Allow constfolding of llvm.sin.* and llvm.cos.* intrinsicsKarthik Bhat2015-07-082-0/+28
| | | | | | | | This patch const folds llvm.sin.* and llvm.cos.* intrinsics whenever feasible. Differential Revision: http://reviews.llvm.org/D10836 llvm-svn: 241665
* SemaDeclObjC.cpp: Escape \@ in comment lines. [-Wdocumentation]NAKAMURA Takumi2015-07-081-2/+2
| | | | llvm-svn: 241664
* Revert r241621, "[CMake] Cleanup tools/CMakeLists.txt to take advantage of ↵NAKAMURA Takumi2015-07-082-52/+88
| | | | | | | | the auto-registration that was already partially working." It broke the build that relies on LLVM_EXTERNAL_CLANG_*. llvm-svn: 241663
* [modules] When determining the visible module set during templateRichard Smith2015-07-085-3/+25
| | | | | | | instantiation, use the set of modules visible from the template definition, not from whichever declaration the specialization was instantiated from. llvm-svn: 241662
* [CMake] Reorder libdeps. NFC.NAKAMURA Takumi2015-07-082-5/+2
| | | | llvm-svn: 241661
* [CMake] Fill up required libs, corresponding to r241653.NAKAMURA Takumi2015-07-082-0/+2
| | | | llvm-svn: 241660
* llvm-objdump: Replace the -macho -raw option with a generic -raw-clang-astAdrian Prantl2015-07-084-16/+53
| | | | | | | | | | | | | | | option that works with all object container formats. Now that clang modules/PCH are object containers this option is useful to to construct pipes like llvm-objdump -raw-clang-ast foo.pcm | llvm-bcanalyzer - to inspect the AST contents in a PCH container. Will be tested via clang. Belatedly addresses review feedback for r233390. llvm-svn: 241659
* COFF: Fix AMD64_SECTION relocation.Rui Ueyama2015-07-082-1/+80
| | | | llvm-svn: 241658
* COFF: Support x86 file header and relocations.Rui Ueyama2015-07-085-14/+107
| | | | llvm-svn: 241657
* Change the expectation for test/Tooling/ms-asm-no-target.cpp sinceAdrian Prantl2015-07-081-6/+6
| | | | | | | clang-check now initializes the available targets to support clang module containers. llvm-svn: 241656
* Remove IsLittleEndian from TargetLowering and redirect to DataLayoutMehdi Amini2015-07-087-30/+28
| | | | | | | | | | | | | | | | Summary: This change is part of a series of commits dedicated to have a single DataLayout during compilation by using always the one owned by the module. Reviewers: echristo Subscribers: llvm-commits, rafael, yaron.keren Differential Revision: http://reviews.llvm.org/D11017 From: Mehdi Amini <mehdi.amini@apple.com> llvm-svn: 241655
* Redirect DataLayout from TargetMachine to Module in SjLjEHPrepareMehdi Amini2015-07-083-10/+6
| | | | | | | | | | | | | | | | Summary: This change is part of a series of commits dedicated to have a single DataLayout during compilation by using always the one owned by the module. Reviewers: echristo Subscribers: yaron.keren, rafael, llvm-commits Differential Revision: http://reviews.llvm.org/D11009 From: Mehdi Amini <mehdi.amini@apple.com> llvm-svn: 241654
* Revert "Revert r241620 and follow-up commits" and move the initializationAdrian Prantl2015-07-0896-57/+397
| | | | | | of the llvm targets from clang/CodeGen into ClangCheck.cpp and CIndex.cpp. llvm-svn: 241653
* Make command files specified to the driver actually print theirJim Ingham2015-07-082-11/+11
| | | | | | | | | | results if the -Q option is not provided. Also took out the quietly option from AddInitialCommand, we don't use that to set this option, we use the override set by the -Q option. <rdar://problem/21232087> llvm-svn: 241652
* Fixed the C modules test case on Darwin by streamlining its code.Sean Callanan2015-07-082-30/+15
| | | | | | | | | | We don't need to do the fancy dance with checking whether the iterator represents a #define -- in fact, that's the wrong thing to do. The thing to do is check whether the highest-priority module that did something to the module #defined or #undefd it. If it #defined it, then the MacroInfo* will be non-NULL and we're good to go. llvm-svn: 241651
* Don't select a thread that stopped for a signal that wasJim Ingham2015-07-081-1/+14
| | | | | | | | | not set to stop - there must be some other thread that stopped for a more interesting reason. <rdar://problem/19943567> llvm-svn: 241650
* Move ProcessKDP's StringExtractor include.Bruce Mitchener2015-07-072-1/+1
| | | | | | | | | | | | | | | This can be in the cpp file rather than the header file, so moving it there. Summary: Move ProcessKDP's StringExtractor include. Reviewers: clayborg Subscribers: lldb-commits Differential Revision: http://reviews.llvm.org/D11018 llvm-svn: 241649
* [WinEH] Make llvm.x86.seh.restoreframe work for stack realignment prologuesReid Kleckner2015-07-079-41/+201
| | | | | | | | | | The incoming EBP value points to the end of a local stack allocation, so we can use that to restore ESI, the base pointer. Once we do that, we can use local stack allocations. If we know we need stack realignment, spill the original frame pointer in the prologue and reload it after restoring ESI. llvm-svn: 241648
* COFF: Check for incompatible machine types.Rui Ueyama2015-07-075-20/+90
| | | | llvm-svn: 241647
* Redirect DataLayout from TargetMachine to Module in StackProtectorMehdi Amini2015-07-071-1/+1
| | | | | | | | | | | | | | | | Summary: This change is part of a series of commits dedicated to have a single DataLayout during compilation by using always the one owned by the module. Reviewers: echristo Subscribers: llvm-commits, rafael, yaron.keren Differential Revision: http://reviews.llvm.org/D11010 From: Mehdi Amini <mehdi.amini@apple.com> llvm-svn: 241646
* MIR Printer: Use a module slot tracker to print global address operands. NFC.Alex Lorenz2015-07-071-13/+12
| | | | | | | | | This commit adopts the 'ModuleSlotTracker' class, which was surfaced in r240842, to print the global address operands. This change ensures that the slot tracker won't have to be recreated every time a global address operand is printed, making the MIR printing more efficient. llvm-svn: 241645
* [SEH] Switch from frameaddress(0) to localaddressReid Kleckner2015-07-075-23/+22
| | | | | | This should do the right thing for stack realignment prologues. llvm-svn: 241644
* [WinEH] Add localaddress intrinsic instead of using frameaddressReid Kleckner2015-07-077-28/+48
| | | | | | | Clang uses this for SEH finally. The new intrinsic will produce the right value when stack realignment is required. llvm-svn: 241643
* Revert r241620 and follow-up commits while investigating linux buildbot ↵Adrian Prantl2015-07-0796-389/+57
| | | | | | failures. llvm-svn: 241642
* Add more nvcastsArnold Schwaighofer2015-07-072-0/+22
| | | | | | | | | Tim Northover has told me that they can occur when the compiler cleverly constructs constants - as demonstrated in the test case. rdar://21703486 llvm-svn: 241641
* Windows doesn't have fork.Adrian McCarthy2015-07-071-0/+1
| | | | llvm-svn: 241640
* COFF: Split writeTo in preparation for supporting 32-bit x86.Rui Ueyama2015-07-072-15/+21
| | | | llvm-svn: 241638
* [WebAssembly] Set the scheduling preference.Dan Gohman2015-07-071-0/+2
| | | | llvm-svn: 241637
* Fix a linker issue with clang-check on Linux.Adrian Prantl2015-07-071-0/+2
| | | | | | There must be a better way to fix this — I'll keep investigating. llvm-svn: 241636
* Cleanup: Use the C++ API to initialize the backend.Adrian Prantl2015-07-071-4/+5
| | | | llvm-svn: 241635
* Update clang for intrinsic rename of framerecover to localrecoverReid Kleckner2015-07-075-26/+26
| | | | llvm-svn: 241634
OpenPOWER on IntegriCloud