Commit Graph

197385 Commits

Author SHA1 Message Date
Tobias Grosser 17778eb826 Drop redundant run line in check
llvm-svn: 233476
2015-03-28 09:34:34 +00:00
Craig Topper b2a097a8a3 Convert feature strings to lowercase even if they have a '+'/'-' in front of them.
llvm-svn: 233475
2015-03-28 04:59:14 +00:00
Akira Hatanaka 5f11781ed5 Partially revert the changes I made in r233473 to keep the code concise.
llvm-svn: 233474
2015-03-28 04:40:43 +00:00
Akira Hatanaka ba511fdd12 clang-format X86ATTInstPrinter.{h,cpp} before I make changes to these files.
llvm-svn: 233473
2015-03-28 04:25:41 +00:00
Rui Ueyama 4757f3210c ELF: Use C++11 non-member initialization.
Setting _alignment member varaible to 0 look suspicious since
the minimum alignment value is 1. I'm not going to change that
number in this patch, though.

llvm-svn: 233472
2015-03-28 04:17:41 +00:00
Akira Hatanaka 725657bad6 [SparcInstPrinter] Use the subtarget that is passed to the print function
instead of the one passed to the constructor.

Unfortunately, I don't have a test case for this change. In order to test my
change, I will have to run the code after line 90 in printSparcAliasInstr. I
couldn't make that happen because printAliasInstr would always handle the
printing of fcmp instructions that the code after line 90 is supposed to handle.

llvm-svn: 233471
2015-03-28 04:03:51 +00:00
Craig Topper 28f550b4df Update comment to match code behavior.
llvm-svn: 233470
2015-03-28 03:24:19 +00:00
Duncan P. N. Exon Smith a8b3a1f374 Verifier: Allow subroutine types to have no type array
Loosen one check from r233446: as long as `DIBuilder` requires a
non-null type for every subprogram, we should allow a null type array.
Also add tests for the rest of `MDSubroutineType`, which were somehow
missing.

llvm-svn: 233468
2015-03-28 02:43:53 +00:00
Richard Trieu d989386f74 Fix comparison functions.
llvm-svn: 233467
2015-03-28 02:37:33 +00:00
Duncan P. N. Exon Smith ce2b983425 DebugInfo: Fix testcases with invalid MDSubprogram nodes
Fix testcases that don't pass the verifier after a WIP patch to check
`MDSubprogram` operands more effectively.  I found the following issues:

  - When `isDefinition: false`, the `variables:` field might point at
    `!{i32 786468}`, or at a tuple that pointed at an empty tuple with
    the comment "previously: invalid DW_TAG_base_type" (I vaguely recall
    adding those comments during an upgrade script).  In these cases, I
    just dropped the array.
  - The `variables:` field might point at something like `!{!{!8}}`,
    where `!8` was an `MDLocation`.  I removed the extra layer of
    indirection.
  - Invalid `type:` (not an `MDSubroutineType`).

llvm-svn: 233466
2015-03-28 02:26:45 +00:00
Anna Zaks 50b0956754 [scan-build] Be friendly to "" in the argument list.
Do not fail when "" is one of the compilation arguments.

llvm-svn: 233465
2015-03-28 02:17:21 +00:00
Ahmed Bougacha a0f35592be [CodeGen] "PromoteInteger" f32 to f64 doesn't make sense.
The original f32->f64 promotion logic was refactored into roughly the
currently shape in r37781. However, starting with r132263, the
legalizer has been split into different kinds, and the previous
"Promote" (which did the right thing) was search-and-replace'd into
"PromoteInteger". The divide gradually deepened, with type legalization
("PromoteInteger") being separated from ops legalization
("Promote", which still works for floating point ops).

Fast-forward to today: there's no in-tree target with legal f64 but
illegal f32 (rather: no tests were harmed in the making of this patch).

With such a target, i.e., if you trick the legalizer into going through
the PromoteInteger path for FP, you get the expected brokenness.
For instance, there's no PromoteIntRes_FADD (the name itself sounds
wrong), so we'll just hit some assert in the PromoteInteger path.

Don't pretend we can promote f32 to f64. Instead, always soften.

llvm-svn: 233464
2015-03-28 01:22:37 +00:00
Leny Kholodov 4ba377561f [ARM] Fix group relocations test.
The fix is for r233277. This makes tests work.
On some build bots the test failed due to different llvm-objdump behaviour for target detection.
Now test checks .text section with etalon and illustrates correctness of generated
code without using of -disassemble llvm-objdump option.

llvm-svn: 233463
2015-03-28 01:18:10 +00:00
Chandler Carruth ff8d943cb8 [Modules] Don't compute a modules cache path if we're not using modules!
Notably, this prevents us from doing *tons* of work to compute the
modules hash, including trying to read a darwin specific plist file off
of the system. There is a lot that needs cleaning up below this layer
too.

llvm-svn: 233462
2015-03-28 01:10:44 +00:00
Rui Ueyama aedd1117e9 ELF: Add a comment about the sysroot path.
llvm-svn: 233461
2015-03-28 00:59:37 +00:00
Rui Ueyama 483f05f49b ELF: Do less if HAVE_CXXABI_H is not defined.
If HAVE_CXXABI_H is not defined, this function is the identity function.
Because HAVE_CXXABI_H did not protect the entire function, it did
extra stuffs before returning the argument.

The new code calls fewer functions. This should help developers understand
this piece of code.

llvm-svn: 233460
2015-03-28 00:47:13 +00:00
Manuel Klimek bea7dfbc5e Make the clang-fuzzer use the CompilerInstance directly.
Going through the driver is too slow.

llvm-svn: 233459
2015-03-28 00:42:36 +00:00
Rui Ueyama fa3e8979a5 ELF: make code concise using "using".
llvm-svn: 233458
2015-03-28 00:34:09 +00:00
Richard Smith ac8c17533f A conversion from a scoped enumeration bitfield to an integral type is an
integral promotion only if it converts to the underlying type or its promoted
type, not if it converts to the promoted type that the bitfield would have it
if were of the underlying type.

llvm-svn: 233457
2015-03-28 00:31:40 +00:00
Rui Ueyama 034f627838 Use cast instead of dyn_cast in combination with llvm_unreachable.
llvm-svn: 233456
2015-03-28 00:09:26 +00:00
Manuel Klimek 667c152bce Add initial version of a clang-fuzzer.
llvm-svn: 233455
2015-03-28 00:07:39 +00:00
Rui Ueyama 6fab3c73b8 Use lambda for std::find_if.
llvm-svn: 233454
2015-03-28 00:00:09 +00:00
Rui Ueyama 286494717f Remove else after return.
llvm-svn: 233453
2015-03-27 23:50:09 +00:00
Rui Ueyama ccaaa21bc9 Use lambda instead of defining a class with operator().
llvm-svn: 233452
2015-03-27 23:47:01 +00:00
Akira Hatanaka ee97475b2e [ARM] Enable changing instprinter's behavior based on the per-function
subtarget.

llvm-svn: 233451
2015-03-27 23:41:42 +00:00
Rui Ueyama cefe5d678d ELF: make scopes of error code varaibles narrower.
llvm-svn: 233450
2015-03-27 23:30:38 +00:00
Rui Ueyama 5332ba8bea ELF: Simplify SymbolFile.
llvm-svn: 233449
2015-03-27 23:26:39 +00:00
Akira Hatanaka cfa1f619e2 clang-format ARMInstPrinter.{h,cpp} before I make changes to these files.
llvm-svn: 233448
2015-03-27 23:24:22 +00:00
Sanjoy Das fe0e0fff92 [SCEV] Look at backedge dominating conditions.
Summary:
This change teaches ScalarEvolution::isLoopBackedgeGuardedByCond to look
at edges within the loop body that dominate the latch.  We don't do an
exhaustive search for all possible edges, but only a quick walk up the
dom tree.

Reviewers: atrick, hfinkel

Subscribers: llvm-commits

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

llvm-svn: 233447
2015-03-27 23:18:08 +00:00
Duncan P. N. Exon Smith 53855f05d3 Verifier: Check operands of MDType subclasses and MDCompileUnit
Add verify checks for `MDType` subclasses and for `MDCompileUnit`.
These new checks don't yet incorporate everything from `Verify()`, but
at least they sanity check the operands.  Also downcast accessors as
possible.

A lot of these accessors can't be downcast as far as we'd like because
of arrays of typed objects (stored in a generic `MDTuple`) and
`MDString`-based type references.  Eventually I'll port over `DIRef<>`
and `DITypedArray<>` from `DebugInfo.h` to clean those up as well.

Updated bitrotted testcases separately in r233415 and r233443 to reduce
churn on the off-chance this needs to be reverted.

llvm-svn: 233446
2015-03-27 23:05:04 +00:00
Duncan P. N. Exon Smith d9ccfb9e01 DebugInfo: Require non-null in DIBuilder::retainType()
Assert that a non-null value is being passed in.  Note that I fixed the
one offender in clang in r233443.

llvm-svn: 233445
2015-03-27 23:00:49 +00:00
Rui Ueyama 49147e30f8 Remove unused forward declaration.
llvm-svn: 233444
2015-03-27 22:59:26 +00:00
Duncan P. N. Exon Smith 5043f91657 DebugInfo: Don't call DIBuilder::retainType(nullptr)
An upcoming LLVM commit will make calling
`DIBuilder::retainType(nullptr)` illegal (actually, it already was, but
it wasn't verified).  Check for null before calling.

This triggered in test/CodeGenObjC/debug-info-block-helper.m.

llvm-svn: 233443
2015-03-27 22:58:05 +00:00
Rui Ueyama d5c60d032f ELF: Use llvm::Optional<StringRef> instead of a bool and a StringRef.
llvm-svn: 233442
2015-03-27 22:51:50 +00:00
Rui Ueyama a57f619133 Remove virtual from some ELFLinkingContext member functions.
I expected that these functions are overridden somewhere in the LLD
code base, but they are actually not. Removing virtual for readability
(and performance).

llvm-svn: 233441
2015-03-27 22:47:44 +00:00
Rui Ueyama 0de4ab513f Reorder ELFLinkingContext member functions and run clang-format.
So that they look to be following the same style as other functions
around them.

llvm-svn: 233440
2015-03-27 22:47:42 +00:00
Andrew Kaylor f7118ae810 Fixing a bug with optimized catch-all handlers in WinEHPrepare
llvm-svn: 233439
2015-03-27 22:31:12 +00:00
Rui Ueyama a2ddf07f25 ELF: Do not use llvm::Optional for _maxPageSize.
Use of llvm::Optional seems useless here because we can set the
default value 0x1000 as an initial value to the varaible.
This patch also de-virtualize the accessor functions.

llvm-svn: 233438
2015-03-27 22:28:35 +00:00
Rui Ueyama c470444837 Fix comment style to follow more common style.
llvm-svn: 233437
2015-03-27 22:28:33 +00:00
Rui Ueyama e555684115 ELF: Make addSearchPath return void instead of bool.
No one uses return value of the member function, and return value
is always true. Returning a value doesn't make sense.
This patch also de-virtualize the fucntion.

llvm-svn: 233436
2015-03-27 22:20:21 +00:00
Rui Ueyama 9cced88c7a ELF: Remove redundant =delete.
Since we have a (protected) constructor having two parameters,
the default constructor is not defined even if we don't do =delete.

llvm-svn: 233435
2015-03-27 22:13:29 +00:00
Rui Ueyama b531fe33d5 ELF: Use C++11 non-member initialization.
llvm-svn: 233434
2015-03-27 22:10:29 +00:00
Rui Ueyama adef19778c Remove unused varaible.
llvm-svn: 233433
2015-03-27 22:06:37 +00:00
Duncan P. N. Exon Smith 49e6a70fe3 Verifier: Call verifyModule() from llc and opt
Change `llc` and `opt` to run `verifyModule()`.  This ensures that we
check the full module before `FunctionPass::doInitialization()` ever
gets called (I was getting crashes in `DwarfDebug` instead of verifier
failures when testing a WIP patch that checks operands of compile
units).  In `opt`, also move up debug-info-stripping so that it still
runs before verification.

There was a fair bit of broken code that was sitting in tree.
Interestingly, some were cases of a `select` that referred to itself in
`-instcombine` tests (apparently an intermediate result).  I split them
off to `*-noverify.ll` tests with RUN lines like this:

    opt < %s -S -disable-verify -instcombine | opt -S | FileCheck %s

This avoids verifying the input file (so we can get the broken code into
`-instcombine), but still verifies the output with a second call to
`opt` (to verify that `-instcombine` will clean it up like it should).

llvm-svn: 233432
2015-03-27 22:04:28 +00:00
Rui Ueyama 2d6d7efb00 PECOFF: Use C++11 non-static member initialization.
llvm-svn: 233431
2015-03-27 21:59:23 +00:00
Richard Smith d6aab59ad1 [modules] Allow a function template definition if we have a pre-existing but not visible definition of the same template.
llvm-svn: 233430
2015-03-27 21:57:41 +00:00
Akira Hatanaka afbac28bb3 Fix call to MCInstPrinter::printInst to pass MCSubtargetInfo.
The interface of this function was changed in r233411.

llvm-svn: 233429
2015-03-27 21:45:58 +00:00
Chris Bieneman abc8fb276a [CMake] Removing duplicates from the list of test suites to generate targets for.
Not doing this causes some headaches for users migrating from autoconf to CMake.

llvm-svn: 233428
2015-03-27 21:45:49 +00:00
Sanjay Patel f176566a00 fix typo and 80-col; NFC
llvm-svn: 233427
2015-03-27 21:45:18 +00:00
Chandler Carruth f089372c5c [Modules] Work around PR23030 again, in a different code path, where
I again added the "reasonable" assertions and they again fired during
a modules self-host.

This hopefully will un-break the self-host build bot. No test case handy
and adding one seems to have little or no value really.

llvm-svn: 233426
2015-03-27 21:40:58 +00:00