Commit Graph

198660 Commits

Author SHA1 Message Date
Rui Ueyama 3245a395c1 Remove else after return.
llvm-svn: 234784
2015-04-13 19:56:08 +00:00
Duncan P. N. Exon Smith 7f38919e05 DebugInfo: Remove a few unnecessary wrappers
llvm-svn: 234783
2015-04-13 19:44:31 +00:00
Duncan P. N. Exon Smith f24e76c36c DebugInfo: Assume valid pointer in DISubprogram::replaceFunction()
Other accessors assume this already; not sure how `replaceFunction()`
got left behind.

llvm-svn: 234782
2015-04-13 19:41:30 +00:00
Rui Ueyama 09dfd2544e Fix formatting and remove excessive parentheses.
llvm-svn: 234781
2015-04-13 19:24:00 +00:00
Nick Lewycky abe2cc17da Subtraction is not commutative. Fixes PR23212!
llvm-svn: 234780
2015-04-13 19:17:37 +00:00
Philip Reames 2114275263 [RewriteStatepointsForGC] Avoid inserting empty holder
We use dummy calls to adjust the liveness of values over statepoints in the midst of the insertion.  If there are no values which need held live, there's no point in actually inserting the holder.  

llvm-svn: 234779
2015-04-13 19:07:47 +00:00
Duncan P. N. Exon Smith 3c2d70434b DebugInfo: Migrate DISubprogram::describes() to new hierarchy, NFC
I don't really like this function at all -- I think it should be as
simple as `return getFunction() == F` -- but for now this seems like the
best we can do.

llvm-svn: 234778
2015-04-13 19:07:27 +00:00
Krzysztof Parzyszek 3ff5657329 Remove this test until I figure out why it fails
llvm-svn: 234777
2015-04-13 18:57:50 +00:00
Duncan P. N. Exon Smith c82570b68b Reapply "Verifier: Check for incompatible bit piece expressions"
This reverts commit r234717, reapplying r234698 (in spirit).

As described in r234717, the original `Verifier` check had a
use-after-free.  Instead of storing pointers to "interesting" debug info
intrinsics whose bit piece expressions should be verified once we have
typerefs, do a second traversal.  I've added a testcase to catch the
`llc` crasher.

Original commit message:

    Verifier: Check for incompatible bit piece expressions

    Convert an assertion into a `Verifier` check.  Bit piece expressions
    must fit inside the variable, and mustn't be the entire variable.
    Catching this in the verifier will help us find bugs sooner, and makes
    `DIVariable::getSizeInBits()` dead code.

llvm-svn: 234776
2015-04-13 18:53:11 +00:00
Andrey Churbanov aa1f2b6306 The generation of the hierarchy used by hierarchical barrier improved in how the generation reacts to affinity set to none, or disabled, or no affinity available, or oversubscription. Some cleanup actions based on review comments to follow: need to use meaningful names instead of digital constants, e.g. use enumerators.
llvm-svn: 234775
2015-04-13 18:51:59 +00:00
Matthias Braun d0d5cbe4dd Use FileCheck for test
llvm-svn: 234774
2015-04-13 18:47:19 +00:00
Akira Hatanaka f99e1913ae [inliner] Don't inline a function if it doesn't have exactly the same
target-cpu and target-features attribute strings as the caller.

Differential Revision: http://reviews.llvm.org/D8984

llvm-svn: 234773
2015-04-13 18:43:38 +00:00
Krzysztof Parzyszek 13b4b013b5 Make the ARM testcase from r234764 also pass on Thumb
llvm-svn: 234772
2015-04-13 18:39:52 +00:00
Greg Clayton 6292b30bab Be sure to complete base classes when importing them.
llvm-svn: 234771
2015-04-13 18:32:54 +00:00
Chaoren Lin f4a92bda49 Missing `-lpthread` causes gcc test failure.
Summary:
`-lpthread` was removed for `g++ -std=c++11` on Linux due to llvm.org/pr21553,
but the original issue doesn't seem to be reproducible anymore. Even if it were,
it had nothing to do with compiling inferiors.

Reviewers: sbest, sivachandra, chying

Subscribers: lldb-commits

Differential Revision: http://reviews.llvm.org/D8991

llvm-svn: 234770
2015-04-13 18:21:31 +00:00
Philip Reames 69e51cae33 [RewriteStatepointsForGC] Fix a latent bug in normalization for invoke statepoint [NFC]
Since we're restructuring the CFG, we also need to make sure to update the analsis passes. While I'm touching the code, I dedicided to restructure it a bit.  The code involved here was very confusing.  This change moves the normalization to essentially being a pre-pass before the main insertion work and updates a few comments to actually say what is happening and *why*.

The restructuring should be covered by existing tests.  I couldn't easily see how to create a test for the invalidation bug.  Suggestions welcome.

llvm-svn: 234769
2015-04-13 18:07:21 +00:00
Jan Vesely ffcd968647 Revert revisions r234755, r234759, r234760
Revert "Remove default in fully-covered switch (to fix Clang -Werror -Wcovered-switch-default)"
Revert "R600: Add carry and borrow instructions. Use them to implement UADDO/USUBO"
Revert "LegalizeDAG: Try to use Overflow operations when expanding ADD/SUB"

Using overflow operations fails CodeGen/Generic/2011-07-07-ScheduleDAGCrash.ll
on hexagon, nvptx, and r600. Revert while I investigate.

llvm-svn: 234768
2015-04-13 17:47:15 +00:00
Argyrios Kyrtzidis 6f1fadf989 [CodeGen] Fix crash with duplicated mangled name.
Patch by Yunzhong Gao!

llvm-svn: 234767
2015-04-13 17:40:46 +00:00
Philip Reames 9a2e01d908 [RewriteStatepointsForGC] Strengthen assertions around liveness
This is related to the issues addressed in 234651.  These assertions check the properties ensured by that change at the place of use.  Note that a similiar property is checked in checkBasicSSA, but without the reachability constraint.  Technically, the liveness would be correct to include unreachable values, but this would be problematic for actual relocation.

llvm-svn: 234766
2015-04-13 17:35:55 +00:00
Ilia K 038363370f Skip a few tests on OS X according to the bug 23181
llvm-svn: 234765
2015-04-13 17:21:58 +00:00
Krzysztof Parzyszek a46c36b8f4 Allow memory intrinsics to be tail calls
llvm-svn: 234764
2015-04-13 17:16:45 +00:00
Matthias Braun a283cb3265 DAGCombiner: Fix crash in select(select) opt.
In case of different types used for the condition of the selects the
select(select) -> select(and) normalisation cannot be performed.

See also: http://reviews.llvm.org/D7622

llvm-svn: 234763
2015-04-13 17:16:33 +00:00
Argyrios Kyrtzidis 2bff5161c4 [libclang] Add functions to get information about fields.
Patch by Loïc Jaquemet!

llvm-svn: 234762
2015-04-13 16:55:04 +00:00
Philip Reames e73300b925 [RewriteStatepointsForGC] Move an expensive debugging check to XDEBUG
The check in question is attempting to help find cases where we haven't relocated a pointer at a safepoint we should have.  It does this by coercing the value to null at any safepoint which doesn't relocate it.  

Unfortunately, this turns out to be rather expensive in terms of memory usage and time.  The number of stores inserted can grow with O(number of values x number of statepoints).  On at least one example I looked at, over half of peak memory usage was coming from this check.  

With this change, the check is no longer enabled by default in Asserts builds.  It is enabled for expensive asserts builds and has a command line option to enable it in both Asserts and non-Asserts builds.  

llvm-svn: 234761
2015-04-13 16:41:32 +00:00
David Blaikie 155f38e0d8 Remove default in fully-covered switch (to fix Clang -Werror -Wcovered-switch-default)
llvm-svn: 234760
2015-04-13 16:37:50 +00:00
Jan Vesely d579048464 R600: Add carry and borrow instructions. Use them to implement UADDO/USUBO
v2: tighten the sub64 tests
v3: rename to CARRY/BORROW
v4: fixup test cmdline
    add known bits computation
    use sign extend instead of sub 0,x
    better add test
v5: remove redundant break
    move lowering to separate functions
    fix comments

Signed-off-by: Jan Vesely <jan.vesely@rutgers.edu>
Reviewers: arsenm
llvm-svn: 234759
2015-04-13 16:26:00 +00:00
David Blaikie 29ac43c361 llvm-readobj: teach it to handle MachO Universal Archive correctly
Patch by Chilledheart (rwindz0@gmail.com).

Reviewed By: rafael

Differential Revision: http://reviews.llvm.org/D8773

llvm-svn: 234758
2015-04-13 16:05:49 +00:00
David Blaikie 8d7554ceff [docs] Update outdated ExtendingLLVM.rst
Summary:
The document is still incomplete in some degrees, but updated to reflect the
latest changes. Anyway we can detail it if any one think it is not enough. For
the sake of it, some useful examples are listed below:

Refer to r113618 "Add X86 MMX type to bitcode and Type" for how to add a new
type.

> One notable change from then is only one thing that ``lib/VMCore`` is renamed
to ``lib/IR``.

Refer to r194760 "Add addrspacecast instruction" for how to add a new
instruction.

Patch by Chilledheart (rwindz0@gmail.com).

Reviewed By: echristo

Differential Revision: http://reviews.llvm.org/D8897

llvm-svn: 234757
2015-04-13 16:04:17 +00:00
Simon Atanasyan 44e904581d [Mips] Rollback explicit instantiation of MipsELFFile template class
This is a follow-up to r234728 and r234729. It looks like explicit
instantiation of `MipsELFFile` is redundant and triggers Visual C++ warning.

llvm-svn: 234756
2015-04-13 15:32:42 +00:00
Jan Vesely a835555e40 LegalizeDAG: Try to use Overflow operations when expanding ADD/SUB
v2: consider BooleanContents when processing overflow

Signed-off-by: Jan Vesely <jan.vesely@rutgers.edu>
Reviewers: resistor, jholewinsky (nvidia parts)
Differential Revision: http://reviews.llvm.org/D6340

llvm-svn: 234755
2015-04-13 15:32:01 +00:00
Daniel Jasper d9309774a6 clang-format: [JS] Support index signature types.
Patch by Martin Probst.

llvm-svn: 234754
2015-04-13 15:03:30 +00:00
Daniel Jasper a74f5072e1 clang-format: [JS] support optionality markers in JS types.
Patch by Martin Probst. Thank you.

llvm-svn: 234753
2015-04-13 15:01:40 +00:00
Daniel Jasper 6a5d38d2ee clang-format: [JS] Allow periods and commata in class declarations.
Patch by Martin Probst. Thank you.

llvm-svn: 234752
2015-04-13 14:56:54 +00:00
Ilia K 2ecf23bc5d Fix CMICmnStreamStdout::WritePriv which causes a stack overflow (MI)
This includes:
* Remove IDS_STDOUT_ERR_NOT_ALL_DATA_WRITTEN enum value
* Remove IDS_STDOUT_ERR_NOT_ALL_DATA_WRITTEN mapped string in CMICmnResources::ms_pResourceId2TextData
* Fix a stack overflow which happens when fputs() fails:
  ```
    [...]
    frame #21153: 0x00000001045db6f0 lldb-mi`CMICmnStreamStderr::WritePriv(CMIUtilString const&, CMIUtilString const&, bool) + 416
    frame #21154: 0x00000001045db529 lldb-mi`CMICmnStreamStderr::Write(CMIUtilString const&, bool) + 265
    frame #21155: 0x00000001045c6a27 lldb-mi`CMICmnBase::SetErrorDescription(CMIUtilString const&) const + 215
    frame #21156: 0x00000001045db6f0 lldb-mi`CMICmnStreamStderr::WritePriv(CMIUtilString const&, CMIUtilString const&, bool) + 416
    frame #21157: 0x00000001045db529 lldb-mi`CMICmnStreamStderr::Write(CMIUtilString const&, bool) + 265
    frame #21158: 0x00000001045c6a27 lldb-mi`CMICmnBase::SetErrorDescription(CMIUtilString const&) const + 215
    frame #21159: 0x00000001045db6f0 lldb-mi`CMICmnStreamStderr::WritePriv(CMIUtilString const&, CMIUtilString const&, bool) + 416
    frame #21160: 0x00000001045db529 lldb-mi`CMICmnStreamStderr::Write(CMIUtilString const&, bool) + 265
    frame #21161: 0x00000001045c6a27 lldb-mi`CMICmnBase::SetErrorDescription(CMIUtilString const&) const + 215
    frame #21162: 0x00000001045db6f0 lldb-mi`CMICmnStreamStderr::WritePriv(CMIUtilString const&, CMIUtilString const&, bool) + 416
    frame #21163: 0x00000001045db529 lldb-mi`CMICmnStreamStderr::Write(CMIUtilString const&, bool) + 265
    frame #21164: 0x00000001045c6a27 lldb-mi`CMICmnBase::SetErrorDescription(CMIUtilString const&) const + 215
    frame #21165: 0x00000001045dc540 lldb-mi`CMICmnStreamStdout::WritePriv(CMIUtilString const&, CMIUtilString const&, bool) + 416
    frame #21166: 0x00000001045de5fb lldb-mi`CMIDriver::DoMainLoop() + 939
    frame #21167: 0x00000001045e2334 lldb-mi`CMIDriverMgr::DriverMainLoop() + 36
    frame #21168: 0x00000001045e1a39 lldb-mi`main + 217
    frame #21169: 0x00007fff90f395c9 libdyld.dylib`start + 1
  ```

llvm-svn: 234751
2015-04-13 14:40:16 +00:00
Justin Bogner 1c21c28b9e InstrProf: Simplify getStmtCount by using an Optional
llvm-svn: 234750
2015-04-13 12:23:19 +00:00
Adhemerval Zanella cced470374 ELF/Aarch64: Add overflow checks for relocation writes
This patch adds support for overflow checking when processing
R_AARCH64_CALL26, R_AARCH64_JUMP26, R_AARCH64_CONDBR19,
R_AARCH64_TLSIE_ADR_GOTTPREL_PAGE21, and R_AARCH64_TLSLE_ADD_TPREL_HI12
relocations.

llvm-svn: 234749
2015-04-13 12:14:14 +00:00
Timur Iskhodzhanov 3d6c6fbef2 Cast an argument to mprotect syscall to uptr to fix X32
llvm-svn: 234748
2015-04-13 12:13:03 +00:00
Adhemerval Zanella b79cea9180 ELF/AArch64: Add tests for ADR_PREL_LO21
Add default and overflow checking when processing
R_AARCH64_ADR_PREL_LO21 relocations.

llvm-svn: 234747
2015-04-13 12:11:23 +00:00
Adhemerval Zanella 0c2f3bcd67 [PATCH 08/10] ELF/Aarch64: Add R_AARCH64_ADR_GOT_PAGE and R_AARCH64_LD64_GOT_LO12_NC checks
This patch adds R_AARCH64_ADR_GOT_PAGE overflow and R_AARCH64_LD64_GOT_LO12_NC
unaligned value checks.

llvm-svn: 234746
2015-04-13 12:08:21 +00:00
Adhemerval Zanella 6f6472c41a ELF/Aarch64: Internal variable cleanup
This patch makes the AArch64GotAtomContent, AArch64Plt0AtomContent, and
AArch64PltAtomContent static and also cleanup their formatting.

llvm-svn: 234745
2015-04-13 11:44:44 +00:00
Adhemerval Zanella 9fc8102457 ELF/AArch64: Check linker created dynamic variables
Check the values of _GLOBAL_OFFSET_TABLE_ and _DYNAMIC variables created by
linker.  AArch64 version.

llvm-svn: 234744
2015-04-13 11:43:33 +00:00
Adhemerval Zanella c55179f847 ELF/AArch64: Check ADR_PREL_PG_HI21 for overflow
Add support for overflow checking when processing
R_AARCH64_ADR_PREL_PG_HI21 relocations and add test.

Patch Will Newton.

llvm-svn: 234743
2015-04-13 11:42:06 +00:00
Adhemerval Zanella 3274a849f4 ELF/AArch64: Add support for R_AARCH64_PREL16
Add support for the R_AARCH64_PREL16 relocation type and add tests.

Patch by Will Newton.

llvm-svn: 234742
2015-04-13 11:40:50 +00:00
Adhemerval Zanella 4def013264 ELF/AArch64: Add support for R_AARCH64_PREL64
Add support for the R_AARCH64_PREL64 relocation type and add tests.

Patch by Will Newton.

llvm-svn: 234741
2015-04-13 11:38:41 +00:00
Adhemerval Zanella a5752c73db ELF/AArch64: Add support for checking PREL32 for overflow
Add support for overflow checking when processing R_AARCH64_PREL32
relocations and add tests.

Patch by Will Newton.

llvm-svn: 234740
2015-04-13 11:36:51 +00:00
Adhemerval Zanella 4c9bad3549 ELF/AArch64: Add support for R_AARCH64_ABS16
Add support for the R_AARCH64_ABS16 relocation type and add tests.

Patch by Will Newton.

llvm-svn: 234739
2015-04-13 11:34:06 +00:00
Rafael Espindola 463d4dd6c6 Bring r234620 back now that llvm is fixed.
LLVM can now detect if a fd is seekable on windows.

Original commit message:

Actually check if lseek works instead of using a filename based heuristic.

llvm-svn: 234738
2015-04-13 11:14:39 +00:00
Rafael Espindola a9b84abba8 Fix SupportsSeeking detection on windows.
Will be tested by existing tests once used (soon).

llvm-svn: 234737
2015-04-13 11:09:48 +00:00
Hans Wennborg 2a76f41511 Speculative build fix for lld on Windows
I can't access my Windows machine at the moment, but the build was breaking with:

c:\b\build\slave\crwinclanglld\build\src\third_party\llvm\tools\lld\lib\readerwriter\elf\mips\MipsTargetLayout.h(38) : error C2440: 'return' : cannot convert from 'lld:🧝:MipsGOTSection<ELFT> *' to 'lld:🧝:AtomSection<ELFT> *'
        with
        [
            ELFT=lld:🧝:Mips32ELType
        ]
        Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast

I think this regressed caused in 234727: that the forward-declarations
of MipsGOTSection<> is not enough.

llvm-svn: 234736
2015-04-13 11:00:22 +00:00
John Brawn e8fd6c8563 [ARM] Align global variables passed to memory intrinsics
Fill in the TODO in CodeGenPrepare::OptimizeCallInst so that global
variables that are passed to memory intrinsics are aligned in the same
way that allocas are.

Differential Revision: http://reviews.llvm.org/D8421

llvm-svn: 234735
2015-04-13 10:47:39 +00:00