Commit Graph

132851 Commits

Author SHA1 Message Date
Greg Clayton facebca6ba Fix indentation.
llvm-svn: 163011
2012-08-31 18:11:06 +00:00
Jack Carter b3f3b17e16 The instruction DINS may be transformed into DINSU or DEXTM depending
on the size of the extraction and its position in the 64 bit word.

This patch allows support of the dext transformations with mips64 direct
object output.

0 <= msb < 32 0 <= lsb < 32 0 <= pos < 32 1 <= size <= 32
DINS
The field is entirely contained in the right-most word of the doubleword

32 <= msb < 64 0 <= lsb < 32 0 <= pos < 32 2 <= size <= 64
DINSM
The field straddles the words of the doubleword

32 <= msb < 64 32 <= lsb < 64 32 <= pos < 64 1 <= size <= 32
DINSU
The field is entirely contained in the left-most word of the doubleword

llvm-svn: 163010
2012-08-31 18:06:48 +00:00
David Blaikie efae14e96c Fix tests to be more robust (to older versions of grep, lesser lit-like test runners, etc)
Seems I had a problem with my version of grep, when run by lit, not supporting
the \s escape. This seems to fix it for me & I'll be getting the buildbots to
run these tests too to keep an eye on them (actually loop-convert tests still
fail when run via a make build, so that'll be addressed in a future commit). I
could use [[:space:]] to generalize over other whitespace but that seemed
unnecessarily verbose when the flexibility wasn't actually required by the
current text of the tests.

Also I just simplified a lot of the loop-convert tests (removing the
unecessary temp file deletion at the start, removing the unnecessary && for
FileCheck, etc).

The remove-cstr-calls/basic.cpp changes were necessitated by an out of tree
lit-like test runner that's a bit less fantastic about escaping. They were
modeled on existing tooling test cases in Clang, with thanks to Manuel Klimek
for the pointers.

llvm-svn: 163009
2012-08-31 17:49:33 +00:00
Bill Wendling 6bbe48967a Move the GCOVFormat enums into their own namespace per the LLVM coding standard.
llvm-svn: 163008
2012-08-31 17:31:28 +00:00
Joao Matos 0e167f7368 Fixed invalid iterators. Since the iterator is invalidated after the erase() call, we need to replace it with the new one returned. This was triggering an assert under MSVC 2012 and making all the ARCMT/ tests fail.
llvm-svn: 163007
2012-08-31 17:28:09 +00:00
Dmitry Vyukov 318f77749e tsan: add "as if synchronized via sleep" feature
llvm-svn: 163006
2012-08-31 17:27:49 +00:00
Chad Rosier 9d1fc3672b Add a comment to explain what's really going on.
llvm-svn: 163005
2012-08-31 17:24:10 +00:00
Jordan Rose 219c9d0dd3 [analyzer] Though C++ inlining is enabled, don't inline ctors and dtors.
More generally, this adds a new configuration option 'c++-inlining', which
controls which C++ member functions can be considered for inlining. This
uses the new -analyzer-config table, so the cc1 arguments will look like this:

... -analyzer-config c++-inlining=[none|methods|constructors|destructors]

Note that each mode implies that all the previous member function kinds
will be inlined as well; it doesn't make sense to inline destructors
without inlining constructors, for example.

The default mode is 'methods'.

llvm-svn: 163004
2012-08-31 17:06:49 +00:00
Fariborz Jahanian 6ce25c09ed objective-C: underline name of the missing method
in the diagnbostic. // rdar://11303469

llvm-svn: 163003
2012-08-31 17:03:18 +00:00
Chad Rosier a8f3c4fe35 The ConvertToMCInst() function can't fail, so remove the now dead Match_ConversionFail enum.
llvm-svn: 163002
2012-08-31 16:41:07 +00:00
Craig Topper c0387f6b23 Mark FMA3 instructions as commutable so that the operands to the multiply part can be commuted.
llvm-svn: 163001
2012-08-31 16:31:13 +00:00
Craig Topper a8227cb76a Use CloneMachineInstr to make a new MI in commuteInstruction to make the code tolerant of instructions with more than two input operands.
llvm-svn: 163000
2012-08-31 16:30:05 +00:00
Craig Topper c30fdbc46c Add support for converting llvm.fma to fma4 instructions.
llvm-svn: 162999
2012-08-31 15:40:30 +00:00
Jakob Stoklund Olesen 96f87069c4 Don't enforce ordered inline asm operands.
I was too optimistic, inline asm can have tied operands that don't
follow the def order.

Fixes PR13742.

llvm-svn: 162998
2012-08-31 15:34:59 +00:00
Dmitry Vyukov 179e5ddae1 tsan: fix windows build (2)
llvm-svn: 162997
2012-08-31 14:11:33 +00:00
Dmitry Vyukov fa90fa357e tsan: fix windows build (1)
llvm-svn: 162996
2012-08-31 14:01:33 +00:00
Dmitry Vyukov bead8f1e3f tsan: slightly optimize mutex unlock
llvm-svn: 162995
2012-08-31 13:42:28 +00:00
Dmitry Vyukov 6f6ba43271 tsan: more precise handling of atomic_store(memory_order_release)
llvm-svn: 162994
2012-08-31 13:22:13 +00:00
Dmitry Vyukov ef8d1944b8 tsan: improve stack depot
llvm-svn: 162993
2012-08-31 12:47:44 +00:00
Benjamin Kramer e7e5235726 Clean up ProfileDataLoader a bit.
- Overloading operator<< for raw_ostream and pointers is dangerous, it alters
  the behavior of code that includes the header.
- Remove unused ID.
- Use LLVM's byte swapping helpers instead of a hand-coded.
- Make ReadProfilingData work directly on a pointer.

No functionality change.

llvm-svn: 162992
2012-08-31 12:43:07 +00:00
Kostya Serebryany d19c8cb2cc [tsan] locate the auxilary space for tsan's Allocator64 after the main region, not before. This simplifies the shadow mappings
llvm-svn: 162991
2012-08-31 12:41:00 +00:00
Alexey Samsonov 3222dad6e3 [Sanitizer] fix overloaded operator error
llvm-svn: 162990
2012-08-31 11:43:01 +00:00
Alexey Samsonov fd0a6e6030 [compiler-rt] fixup for r162988 - remove accidentally commited file
llvm-svn: 162989
2012-08-31 11:13:38 +00:00
Alexey Samsonov 704f71616d [compiler-rt] Move draft code for llvm-symbolizer to compiler-rt/utils/llvm-symbolizer after chandlerc's suggestion
llvm-svn: 162988
2012-08-31 11:12:10 +00:00
Alexey Samsonov e70ed73d1f [Sanitizer] Remove some calls to libc malloc from symbolizer
llvm-svn: 162987
2012-08-31 11:07:52 +00:00
Dmitri Gribenko 6bab9113b0 Remove the useless CommentOptions class.
llvm-svn: 162986
2012-08-31 10:35:30 +00:00
Dmitri Gribenko d458ebb486 Use LLVM_DELETED_FUNCTION instead of a comment.
llvm-svn: 162985
2012-08-31 10:23:13 +00:00
Alexey Samsonov 329eae86ef [Sanitizer] Resolve fixme: break dependency of sanitizer_common tests on TSan RTL
llvm-svn: 162984
2012-08-31 10:15:44 +00:00
NAKAMURA Takumi 2762dadf2c llvm/test/CodeGen/X86/vec_select.ll: Fix failure on xmm-less hosts, to add -mattr=+sse2.
FIXME: Should this be tested with both +avx and -avx,+sse2?
llvm-svn: 162983
2012-08-31 10:02:22 +00:00
Alexey Samsonov 79b36285ca [Sanitizer] Make lint checking a standalone script in sanitizer_common
llvm-svn: 162982
2012-08-31 08:36:36 +00:00
Alexey Samsonov de827cb42b [Sanitizer] Remove lint checkers from our old makefiles in favor of buildbot
llvm-svn: 162981
2012-08-31 08:10:28 +00:00
Alexey Samsonov 66ca36a564 [TSan] Fix style warinings in output test
llvm-svn: 162980
2012-08-31 08:00:37 +00:00
Bill Wendling 5aed004cf1 Cleanups due to feedback. No functionality change. Patch by Alistair.
llvm-svn: 162979
2012-08-31 05:18:31 +00:00
Ted Kremenek 40ea0eaaa1 Make AnalyzerOptions a shared object between CompilerInvocation and
AnalysisManager, allowing the StringMap of configuration values to
be propagated.

llvm-svn: 162978
2012-08-31 04:36:05 +00:00
Ted Kremenek a5770cd1fa Move AnalyzerOptions.h into 'Core' StaticAnalyzer sub-library.
llvm-svn: 162977
2012-08-31 04:35:58 +00:00
Dmitri Gribenko 454a43cf30 DeclPrinter tests: simplify the code by using the new runToolOnCodeWithArgs
function from Tooling.

llvm-svn: 162976
2012-08-31 03:23:26 +00:00
Dmitri Gribenko 9fc8b9c156 Documentation: correct a typo introduced in r162971.
llvm-svn: 162975
2012-08-31 03:19:55 +00:00
Dmitri Gribenko bda79e5cc2 DeclPrinter tests: since now some platforms use C++11 by default, make it
explicitly visible in test cases which language variant is used.

llvm-svn: 162974
2012-08-31 03:05:44 +00:00
Michael Liao 969f3913dd Clean up AddedComplexity further after adding UseSSEx
llvm-svn: 162973
2012-08-31 03:01:35 +00:00
Greg Clayton 97e44a0cc7 Added command lists that can be executed on launch, stop, crash and exit. Added code to auto import the lldb module that we can use on many stand alone modules.
llvm-svn: 162972
2012-08-31 02:55:56 +00:00
Dmitri Gribenko c872c92d8c Documentation: add missing word "accepts".
llvm-svn: 162971
2012-08-31 02:39:31 +00:00
Eli Friedman 324adad966 Make a bunch of methods on Lexer private.
llvm-svn: 162970
2012-08-31 02:29:37 +00:00
Dmitri Gribenko 3ca956f715 Comment HTML tag name machers: move from StringSwitch to an efficient
TableGen-generated string matcher.

llvm-svn: 162969
2012-08-31 02:21:44 +00:00
Jakob Stoklund Olesen d3bda3c5b9 Fix a couple of typos in EmitAtomic.
Thumb2 instructions are mostly constrained to rGPR, not tGPR which is
for Thumb1.

rdar://problem/12203728

llvm-svn: 162968
2012-08-31 02:08:34 +00:00
Greg Clayton c769722a16 Added an example that show correct usage of the async process event API.
llvm-svn: 162967
2012-08-31 01:11:17 +00:00
Jordan Rose 9858b12381 Revert "[analyzer] Disable diagnostic checking on the buildbot."
This reverts commit befc0f648c83f65e1f3567f2058c7c18b4bc3ad8 now that
plist-html diagnostics are working again.

llvm-svn: 162966
2012-08-31 00:36:30 +00:00
Jordan Rose cc0b1bfa56 [analyzer] Ensure that PathDiagnostics profile the same regardless of path.
PathDiagnostics are actually profiled and uniqued independently of the
path on which the bug occurred. This is used to merge diagnostics that
refer to the same issue along different paths, as well as by the plist
diagnostics to reference files created by the HTML diagnostics.

However, there are two problems with the current implementation:

1) The bug description is included in the profile, but some
   PathDiagnosticConsumers prefer abbreviated descriptions and some
   prefer verbose descriptions. Fixed by including both descriptions in
   the PathDiagnostic objects and always using the verbose one in the profile.

2) The "minimal" path generation scheme provides extra information about
   which events came from macros that the "extensive" scheme does not.
   This resulted not only in different locations for the plist and HTML
   diagnostics, but also in diagnostics being uniqued in the plist output
   but not in the HTML output. Fixed by storing the "end path" location
   explicitly in the PathDiagnostic object, rather than trying to find the
   last piece of the path when the diagnostic is requested.

This should hopefully finish unsticking our internal buildbot.

llvm-svn: 162965
2012-08-31 00:36:26 +00:00
Jordan Rose 7444f5d826 [analyzer] Fix a crash in plist-html generation introduced in r162939.
Basically, do the correct thing to fix the XML generation error, rather
than making it even worse by unilaterally dereferencing a null pointer.

llvm-svn: 162964
2012-08-31 00:36:20 +00:00
Jim Grosbach e423e865fe X86: Fix encoding of 'movd %xmm0, %rax'
The assembly string for the VMOVPQIto64rr instruction incorrectly lacked the 'v'
prefix, resulting in mis-assembly of the vanilla movd instruction.

llvm-svn: 162963
2012-08-31 00:30:30 +00:00
Eli Friedman 34866c7719 Change the representation of builtin functions in the AST
(__builtin_* etc.) so that it isn't possible to take their address.
Specifically, introduce a new type to represent a reference to a builtin
function, and a new cast kind to convert it to a function pointer in the
operand of a call.  Fixes PR13195.

llvm-svn: 162962
2012-08-31 00:14:07 +00:00