Commit Graph

170154 Commits

Author SHA1 Message Date
Dmitry Vyukov eac8cc7a42 tsan: fix flaky test
llvm-svn: 204119
2014-03-18 06:37:31 +00:00
NAKAMURA Takumi 7a1ac3b89b CodeGen/R600/v_cndmask.ll: Relax an expression to unbreak msvcrt.
V_CNDMASK_B32_e64 v0, v0, -1.#QNAN0e+00, s[2:3], 0, 0, 0, 0

FIXME: We really need to implement our formatter...
llvm-svn: 204118
2014-03-18 06:17:22 +00:00
NAKAMURA Takumi 4dc097ad7c DebugInfo/lto-comp-dir.ll: Tweak for dos path.
llvm-svn: 204117
2014-03-18 06:01:14 +00:00
NAKAMURA Takumi 4156d525bd clang/test/Modules/cxx-templates.cpp: Tweak for dos path.
llvm-svn: 204116
2014-03-18 05:58:02 +00:00
Kostya Serebryany 5c0171b811 [sanitizer] a bit more informative deadlock detector report (still lots to improve)
llvm-svn: 204115
2014-03-18 05:56:14 +00:00
Saleem Abdulrasool 42b233a836 ARM: add an assertion
Add an assertion that a valid section is referenced.  The potential NULL pointer
dereference was identified by the clang static analyzer.

llvm-svn: 204114
2014-03-18 05:26:55 +00:00
Peter Collingbourne 35c3f61d74 Add an argument comment checker to clang-tidy.
This checks that parameters named in comments that appear before arguments in
function and constructor calls match the parameter name used in the callee's
declaration. For example:

void f(int x, int y);

void g() {
  f(/*y=*/0, /*z=*/0);
}

contains two violations of the policy, as the names 'x' and 'y' used in the
declaration do not match names 'y' and 'z' used at the call site.

I think there is significant value in being able to check/enforce this policy
as a way of guarding against accidental API misuse and silent breakages
caused by API changes.

Although this pattern appears somewhat frequently in the LLVM codebase,
this policy is not prescribed by the LLVM coding standards at the moment,
so it lives under 'misc'.

Differential Revision: http://llvm-reviews.chandlerc.com/D2914

llvm-svn: 204113
2014-03-18 04:46:45 +00:00
Saleem Abdulrasool 47a35dfd7c Expression: cleanup unused include
The standard JIT has been discarded in favour of MCJIT.  USE_STANDARD_JIT is no
longer defined.  Furthermore, the execution engine is now built in
IRExecutionUnit.  Simply remove inclusion of both JIT headers.

llvm-svn: 204112
2014-03-18 04:43:53 +00:00
Saleem Abdulrasool 037d8bb5a1 spruce up .gitignore
Update gitignore to ignore additional temporary files and format more similar to
LLVM's .gitignore.

llvm-svn: 204111
2014-03-18 04:43:49 +00:00
Saleem Abdulrasool 44edda0af7 create constants for multichar constants
Multichar constants are not portable as the byte order is undefined.  Use a
constant value instead.  This avoids a warning when compiling with gcc 4.8+
(-Wmultichar) and makes the code more portable.

llvm-svn: 204110
2014-03-18 04:43:47 +00:00
Peter Collingbourne cb97c48243 Fix const correctness issue in CXXConstructExpr::getArgs().
llvm-svn: 204109
2014-03-18 04:42:01 +00:00
Richard Smith 7fcb35f5e1 More working around a GCC range-based for scope bug.
llvm-svn: 204108
2014-03-18 02:37:59 +00:00
Adrian Prantl 0aa1aa2e9d DwarfDebug: Only unique retained types instead of all types.
This is a follow-up to r203983 based on feedback from dblaikie and mren (Thanks!)
No functionality change.

llvm-svn: 204107
2014-03-18 02:35:03 +00:00
Adrian Prantl 1a1647cab6 Switch the type field in DIVariable and DIGlobalVariable over to DITypeRefs.
This allows us to catch more opportunities for ODR-based type uniquing
during LTO.
Paired commit with CFE which updates some testcases to verify the new
DIBuilder behavior.

llvm-svn: 204106
2014-03-18 02:34:58 +00:00
Adrian Prantl f521af81ef Debug info: Update testcases to new DIBuilder behaviour. Variables now
store DIRefs to their types for improved type uniquing.

llvm-svn: 204105
2014-03-18 02:34:54 +00:00
Adrian Prantl 702bf5a9d9 Replace unnecessary #include directive with forward declarations.
llvm-svn: 204104
2014-03-18 02:34:52 +00:00
Eric Christopher 089793b39e Add explanatory comment.
llvm-svn: 204103
2014-03-18 02:18:27 +00:00
Eric Christopher 05135fb468 Shorten DotDebugLocEntry to just DebugLocEntry and reformat.
No functional change.

llvm-svn: 204102
2014-03-18 02:18:24 +00:00
David Blaikie 8287aff1cc DebugInfo: Avoid emitting standard opcode lengths in debug_line.dwo headers where opcodes are never used anyway
Introduce a slightly tighter wrapper around the header structure that
handles this use case. (MCDwarfDwoLineTable)

llvm-svn: 204101
2014-03-18 02:13:23 +00:00
Richard Smith cbdf733dba AST dumper: if we have multiple implicit instantiations of the same class
template specialization (from different modules), dump them all, so that every
declaration is dumped somewhere.

llvm-svn: 204100
2014-03-18 02:07:28 +00:00
David Blaikie 4a2f95f60e DebugInfo: Implement debug_line.dwo for file names used in type units during -gsplit-dwarf
This removes an attribute (and more importantly, a relocation) from
skeleton type units and removes some unnecessary file names from the
debug_line section that remains in the .o (and linked executable) file.

There's still a few places we could shave off some more space here:

* use compilation dir of the underlying compilation unit (since all the
  type units share that compilation dir - though this would be more
  complicated in LTO cases where they don't (keep a map of compilation
  dir->line table header?))

* Remove some of the unnecessary header fields from the line table since
  they're not needed in this situation (about 12 bytes per table).

llvm-svn: 204099
2014-03-18 01:17:26 +00:00
Duncan P. N. Exon Smith cf9e671f5c PGO: Switch to isOSBinFormatMachO()
llvm-svn: 204098
2014-03-18 00:39:26 +00:00
Richard Smith 8aa4922ac5 Fix variable shadowing. Due to a bug in GCC's implementation of range-based for
loops, it was making this an error, resulting in buildbot failures.

llvm-svn: 204097
2014-03-18 00:35:12 +00:00
Richard Smith 6a70c6420f Remove 'REQUIRES: LP64' from these tests and use a more targeted fix.
llvm-svn: 204096
2014-03-18 00:30:09 +00:00
David Blaikie 9a6f9a4c68 DebugInfo: Flag test as requiring object emission support
Cleans up buildbot failures on R600 and similar.

llvm-svn: 204095
2014-03-18 00:12:25 +00:00
David Blaikie e05274d7d9 DebugInfo: Do not rely on the compilation dir (index 0) for files in line tables shared between compilation units
When emitting assembly there's no support for emitting separate line
tables for each compilation unit - so LLVM emits .loc directives
producing a single line table.

Line tables have an implicit directory (index 0) equal to the
compilation directory (DW_AT_comp_dir) of the compilation unit that
references them.

If multiple compilation units (with possibly disparate compilation
directories) reference the same line table, we must avoid relying on
this ambiguous directory.

Achieve this my simply not setting the compilation directory on the line
table when we're in this situation (multiple units while emitting
assembly).

llvm-svn: 204094
2014-03-18 00:11:48 +00:00
Fariborz Jahanian 19a08bbb9a Objective-C. No need to issue deprecated warning if deprecated method
in class extension is being implemented in primary class implementation
(no overriding is involved).
// rdar://16249335

llvm-svn: 204093
2014-03-18 00:10:37 +00:00
David Blaikie 0e8d401c53 DebugInfo: Move getOrCreateSourceID from DwarfDebug to DwarfCompileUnit
We still do a few lookups into the line table mapping in MCContext that
could be factored out into a single lookup (rather than looking it up
once for the table label, once to set the compilation unit, once for
each time we need a file ID, etc... ) but assembly output complicates
that somewhat as we still need a virtual dispatch back to the
MCAsmStreamer in that case.

llvm-svn: 204092
2014-03-17 23:53:25 +00:00
Duncan P. N. Exon Smith 1373630bc4 Reapply "PGO: Statically generate data structures"
Reapply r204079 and r204083, this time with stubs for fputc in
compiler-rt.

llvm-svn: 204091
2014-03-17 23:44:56 +00:00
Richard Smith 20ade551a6 Factor out repeated code in dumping template declarations.
llvm-svn: 204090
2014-03-17 23:34:53 +00:00
David Blaikie c7f29dc068 DebugInfo: Move line table zero-directory-index (compilation dir) handling into MCDwarf
Our handling of compilation directory in DwarfDebug was broken
(incorrectly using the 'last' compilation directory (that of the last
CU in the metadata list) for all function emission in any CU). By moving
this handling down into MCDwarf the issue is fixed as the compilation
dir is tracked correctly per line table.

llvm-svn: 204089
2014-03-17 23:29:40 +00:00
Duncan P. N. Exon Smith ffdfaa6908 Revert r204079, r204083 and r204084 "PGO: Statically generate data structures"
Buildbots are having trouble finding fputc(), and I can't figure out
why.  Reverting to investigate.

llvm-svn: 204088
2014-03-17 23:28:41 +00:00
Jim Ingham 0eed738008 Get "ThreadPlanShouldStopHere" to handle auto-stepping through line number 0 code.
llvm-svn: 204087
2014-03-17 23:03:34 +00:00
Richard Smith dcc2c453a5 Range-ify and simplify some of the AST dumping code by factoring out the lastChild check.
llvm-svn: 204086
2014-03-17 23:00:06 +00:00
Matt Arsenault f45faaf30d Make methods static
llvm-svn: 204085
2014-03-17 22:23:09 +00:00
Duncan P. N. Exon Smith 054f8708b5 Switch from fputc to putc to fix r204079?
llvm-svn: 204084
2014-03-17 22:20:58 +00:00
Duncan P. N. Exon Smith 58d2637f2a Rename __ProfileData to __llvm_pgo_data
<rdar://problem/15943240>

llvm-svn: 204083
2014-03-17 22:08:05 +00:00
Richard Smith baf3ca5c01 Don't fold together the name lookup entries for two declarations if they are
declared in different namespaces in the same inline namespace set.

llvm-svn: 204082
2014-03-17 21:46:03 +00:00
Fariborz Jahanian ba419ce21d Objective-C. Consider blocks for designated initializer
warnings (warning or lack there of) as well since
blocks are another pattern for envoking other
designated initializers. // rdar://16323233

llvm-svn: 204081
2014-03-17 21:41:40 +00:00
Duncan P. N. Exon Smith 2fe531cb07 PGO: Statically generate data structures
In instrumentation-based profiling, we need a set of data structures to
represent the counters.  Previously, these were built up during static
initialization.  Now, they're shoved into a specially-named section so
that they show up as an array.

As a consequence of the reorganizing symbols, instrumentation data
structures for linkonce functions are now correctly coalesced.

This is the first step in a larger project to minimize runtime overhead
and dependencies in instrumentation-based profilng.  The larger picture
includes removing all initialization overhead and making the dependency
on libc optional.

<rdar://problem/15943240>

llvm-svn: 204080
2014-03-17 21:18:30 +00:00
Duncan P. N. Exon Smith 77a88e3064 PGO: Statically generate data structures
In instrumentation-based profiling, we need a set of data structures to
represent the counters.  Previously, these were built up during static
initialization.  Now, they're shoved into a specially-named section so
that they show up as an array.

As a consequence of the reorganizing symbols, instrumentation data
structures for linkonce functions are now correctly coalesced.

This is the first step in a larger project to minimize runtime overhead
and dependencies in instrumentation-based profilng.  The larger picture
includes removing all initialization overhead and making the dependency
on libc optional.

<rdar://problem/15943240>

llvm-svn: 204079
2014-03-17 21:18:24 +00:00
David Majnemer 7ec93f9b1c Implement N3891: A proposal to rename shared_mutex to shared_timed_mutex
This is as straightforward as it sounds, a renamed from shared_mutex to
shared_timed_mutex.

Note that libcxx .dylib and .so files built with c++14 support need to
be rebuilt.

llvm-svn: 204078
2014-03-17 20:19:44 +00:00
David Majnemer 2fd6f512e5 Replace a tab with a space
llvm-svn: 204077
2014-03-17 20:13:54 +00:00
Dan Gohman 172c5d3451 Use range metadata instead of introducing selects.
When GlobalOpt has determined that a GlobalVariable only ever has two values,
it would convert the GlobalVariable to a boolean, and introduce SelectInsts
at every load, to choose between the two possible values. These SelectInsts
introduce overhead and other unpleasantness.

This patch makes GlobalOpt just add range metadata to loads from such
GlobalVariables instead. This enables the same main optimization (as seen in
test/Transforms/GlobalOpt/integer-bool.ll), without introducing selects.

The main downside is that it doesn't get the memory savings of shrinking such
GlobalVariables, but this is expected to be negligible.

llvm-svn: 204076
2014-03-17 19:57:04 +00:00
Owen Anderson b36376efcb Switch a number of loops in lib/CodeGen over to range-based for-loops, now that
the MachineRegisterInfo iterators are compatible with it.

llvm-svn: 204075
2014-03-17 19:36:09 +00:00
Owen Anderson 900b4807fe Really REALLY finish adding const to the MachineRegisterInfo iterator range methods.
llvm-svn: 204074
2014-03-17 19:34:51 +00:00
Kevin Enderby 8d761cc56d Making a guess to fix the test case with r204056 to get the build bot working.
llvm-svn: 204073
2014-03-17 19:00:03 +00:00
Matt Arsenault fae02989b7 R600: Match sign_extend_inreg to BFE instructions
llvm-svn: 204072
2014-03-17 18:58:11 +00:00
Matt Arsenault 985b9de485 Make DAGCombiner work on vector bitshifts with constant splat vectors.
llvm-svn: 204071
2014-03-17 18:58:01 +00:00
Owen Anderson 76c82037bb Add one more const marker that I missed.
llvm-svn: 204070
2014-03-17 18:16:10 +00:00