Commit Graph

1059 Commits

Author SHA1 Message Date
Dan Liew
1c9547ed51 [sphinx cleanup]
Fix sphinx warning introduced by r217501.

llvm-svn: 217524
2014-09-10 17:26:21 +00:00
Daniel Jasper
b87899b567 clang-format: Add option to allow short case labels on a single line.
On a single line:
  switch (a) {
  case 1: x = 1; return;
  case 2: x = 2; return;
  default: break;
  }

Not on a single line:
  switch (a) {
  case 1:
    x = 1;
    return;
  case 2:
    x = 2;
    return;
  default:
    break;
  }

This partly addresses llvm.org/PR16535. In the long run, we probably want to
lay these out in columns.

llvm-svn: 217501
2014-09-10 13:11:45 +00:00
Alexey Samsonov
8e1162c71d Implement nonnull-attribute sanitizer
Summary:
This patch implements a new UBSan check, which verifies
that function arguments declared to be nonnull with __attribute__((nonnull))
are actually nonnull in runtime.

To implement this check, we pass FunctionDecl to CodeGenFunction::EmitCallArgs
(where applicable) and if function declaration has nonnull attribute specified
for a certain formal parameter, we compare the corresponding RValue to null as
soon as it's calculated.

Test Plan: regression test suite

Reviewers: rsmith

Reviewed By: rsmith

Subscribers: cfe-commits, rnk

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

llvm-svn: 217389
2014-09-08 17:22:45 +00:00
Hal Finkel
bcc06085a8 Add __builtin_assume and __builtin_assume_aligned using @llvm.assume.
This makes use of the recently-added @llvm.assume intrinsic to implement a
__builtin_assume(bool) intrinsic (to provide additional information to the
optimizer). This hooks up __assume in MS-compatibility mode to mirror
__builtin_assume (the semantics have been intentionally kept compatible), and
implements GCC's __builtin_assume_aligned as assume((p - o) & mask == 0). LLVM
now contains special logic to deal with assumptions of this form.

llvm-svn: 217349
2014-09-07 22:58:14 +00:00
Manuel Klimek
94ad0bf10d Add matcher for linkage specification
Patch by Jacques Pienaar.

llvm-svn: 217135
2014-09-04 08:51:06 +00:00
Anton Yartsev
94e46f3eb8 Enhance the 'Vectors and Extended Vectors' section.
Added cast operations to the table of vector operations. Supported status 'no' means that there are no tests in the Clang test suite for the given cast.

llvm-svn: 217055
2014-09-03 17:59:21 +00:00
Daniel Jasper
db986eb6bb clang-format: Add an option 'SpaceAfterCStyleCast'.
This permits to add a space after closing parenthesis of a C-style cast.
Defaults to false to preserve old behavior.

Fixes llvm.org/PR19982.

Before:
  (int)i;

After:
  (int) i;

Patch by Marek Kurdej.

llvm-svn: 217022
2014-09-03 07:37:29 +00:00
Yunzhong Gao
637cb90ba8 Fixing a typo in the documented __builtin_convertvector example.
"vf[0]" ==> "vs[0]"

llvm-svn: 216935
2014-09-02 19:24:14 +00:00
David Blaikie
e90195c09b unique_ptrify the result of CFG::buildCFG/CFGBuilder::buildCFG
llvm-svn: 216755
2014-08-29 18:53:26 +00:00
Daniel Jasper
ad981f888a clang-format: New option SpacesInSquareBrackets.
Before:
  int a[5];
  a[3] += 42;

After:
  int a[ 5 ];
  a[ 3 ] += 42;

Fixes LLVM bug #17887 (http://llvm.org/bugs/show_bug.cgi?id=17887).

Patch by Marek Kurdej, thank you!

llvm-svn: 216449
2014-08-26 11:41:14 +00:00
Manuel Klimek
3fe8a38110 Add hasAttr matcher for declarations.
Delete special-case CUDA attribute matchers.

Patch by Jacques Pienaar.

llvm-svn: 216379
2014-08-25 11:23:50 +00:00
Rafael Espindola
af74250ec0 Clear the clang release notes to make room for 3.6.
llvm-svn: 216293
2014-08-22 21:59:11 +00:00
Nick Lewycky
12be8efc62 Clarify.
llvm-svn: 215808
2014-08-16 02:14:37 +00:00
Nick Lewycky
367cbddfc2 Try indenting to put all the text inside the block.
llvm-svn: 215807
2014-08-16 02:11:54 +00:00
Nick Lewycky
e9a774022a Document what's experimental about __attribute__((enable_if)). PR20392
llvm-svn: 215806
2014-08-16 02:09:42 +00:00
Samuel Benzaquen
8e7f99647d Add isDeleted() matcher for FunctionDecl nodes.
Reviewers: klimek

Subscribers: klimek, cfe-commits

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

llvm-svn: 215714
2014-08-15 14:20:59 +00:00
Alexey Samsonov
de443c5002 [UBSan] Add returns-nonnull sanitizer.
Summary:
This patch adds a runtime check verifying that functions
annotated with "returns_nonnull" attribute do in fact return nonnull pointers.
It is based on suggestion by Jakub Jelinek:
http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20140623/223693.html.

Test Plan: regression test suite

Reviewers: rsmith

Reviewed By: rsmith

Subscribers: cfe-commits

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

llvm-svn: 215485
2014-08-13 00:26:40 +00:00
Alexander Kornienko
092cb21046 Add documentation on how Language option in .clang-format files work.
llvm-svn: 215443
2014-08-12 13:34:22 +00:00
Dan Liew
b954493890 Fix sphinx warning.
llvm-svn: 214967
2014-08-06 13:49:33 +00:00
Fariborz Jahanian
bcd82afad6 Introduce f[no-]max-unknown-pointer-align=[number] option
to instruct the code generator to not enforce a higher alignment 
than the given number (of bytes) when accessing memory via an opaque 
pointer or reference. Patch reviewed by John McCall (with post-commit
review pending). rdar://16254558

llvm-svn: 214911
2014-08-05 18:37:48 +00:00
Hans Wennborg
da312809d4 ReleaseNotes: try to fix links
llvm-svn: 214883
2014-08-05 17:19:14 +00:00
Hans Wennborg
458fb14407 ReleaseNotes: mention basic debug info and ASan support in the Windows blurb
llvm-svn: 214882
2014-08-05 17:15:00 +00:00
Daniel Jasper
ca4ea1ce59 clang-format: Add option to always break after a function's return type.
This is required for GNU coding style, among others.

Also update the configuration documentation.

Modified from an original patch by Jarkko Hietaniemi, thank you!

llvm-svn: 214858
2014-08-05 12:16:31 +00:00
Manuel Klimek
d52a3b8897 Adds AST matchers for matching CUDA declarations.
Patch by Jacques Pienaar.

llvm-svn: 214852
2014-08-05 09:45:53 +00:00
Hans Wennborg
02dc000331 ReleaseNotes: add blurb about Windows support
llvm-svn: 214830
2014-08-05 00:21:23 +00:00
Hans Wennborg
35487d8e50 UsersManual: update clang-cl options
llvm-svn: 214777
2014-08-04 21:07:58 +00:00
Sylvestre Ledru
c5290fe6b6 3.5 => 3.6
llvm-svn: 214164
2014-07-29 07:07:31 +00:00
Mark Heffernan
c888e41c0c Add support for #pragma nounroll.
llvm-svn: 213885
2014-07-24 18:09:38 +00:00
Richard Smith
f89e492349 [modules] Slightly expand module semantics documentation.
llvm-svn: 213838
2014-07-24 03:42:38 +00:00
Mark Heffernan
450c23843e In unroll pragma syntax and loop hint metadata, change "enable" forms to a new form using the string "full".
llvm-svn: 213771
2014-07-23 17:31:31 +00:00
Yi Kong
4de26fb2e0 ARM: Add doc for ACLE memory barrier intrinsics
Add documentations for ACLE memory barrier intrinsics, describing their motion
barrier characteristics.

llvm-svn: 213733
2014-07-23 09:25:02 +00:00
Aaron Ballman
a2a3b3fc5b Escaping an RST character to correct a Sphinx warning.
llvm-svn: 213651
2014-07-22 13:12:38 +00:00
Mark Heffernan
bd26f5ea4d Add support for '#pragma unroll'.
llvm-svn: 213574
2014-07-21 18:08:34 +00:00
Alp Toker
958027b698 Fix typos
Also consolidate 'backward compatibility'

llvm-svn: 212974
2014-07-14 19:42:55 +00:00
Sylvestre Ledru
0e767b16f9 Document the forward of the -u option (r211756)
llvm-svn: 212969
2014-07-14 18:34:37 +00:00
Sylvestre Ledru
5e43f74d4c Document the warning triggered by the unsupported gcc optimization flags (r212805)
llvm-svn: 212968
2014-07-14 18:30:23 +00:00
Diego Novillo
94b276deba Enable -gcolumn-info by default.
This patch flips the default value for -gcolumn-info to be on by
default. I discussed the rationale and provided compile/size data
in:

http://lists.cs.uiuc.edu/pipermail/llvmdev/2014-June/074290.html

This also updates the documentation and some tests that relied on
the lack of column information. Some tests had column information
in the expected output, but it was wrong (the tsan tests). Others
were using the driver to execute.

llvm-svn: 212781
2014-07-10 23:29:28 +00:00
Daniel Jasper
c75e1effed clang-format: Add new option to indent wrapped function declarations.
Though not completely identical, make former
IndentFunctionDeclarationAfterType change this flag for backwards
compatibility (it is somewhat close in meaning and better the err'ing on
an unknown config flag).

llvm-svn: 212597
2014-07-09 08:42:42 +00:00
Daniel Jasper
7fe6a18141 clang-format: Update flag documentation.
llvm-svn: 212594
2014-07-09 08:19:11 +00:00
Alp Toker
f5ea368917 PTHInternals.rst: PCH is now a thing, update docs to reflect it
llvm-svn: 212458
2014-07-07 14:02:39 +00:00
Nico Weber
d952acc197 Update internals manual on how to add AST nodes.
StmtDumper.cpp is called ASTDumper.cpp these days, and usually works well
for new AST nodes without changes.  There's now DataRecursiveASTVisitor
in addition to RecursiveASTVisitor, and serialization wasn't mentioned.

llvm-svn: 212426
2014-07-07 00:50:39 +00:00
Reid Kleckner
ae7127fb32 Update the MSVC compatibilty document for class template parsing
llvm-svn: 212237
2014-07-02 23:37:33 +00:00
David Majnemer
fc29d8b8c3 More editorial issues in MSVCCompatibility.rst
Make the status text for lambdas green.

llvm-svn: 212229
2014-07-02 22:14:34 +00:00
Warren Hunt
8da6cc6a05 Fix Typo in MSVCCompatibility.rst
Also removed a sentance that was no longer relevant.

llvm-svn: 212227
2014-07-02 21:46:03 +00:00
David Majnemer
ac64d2b064 Fixup typo in MSVCCompatibility.rst
llvm-svn: 212219
2014-07-02 21:09:33 +00:00
David Majnemer
fe828adf19 Update the MSVC Compatibility document
It hasn't been updated to reflect the progress we've made.  We've fuzz
tested VFTables, VBTables, layout, and RTTI data.  We support lambdas
that are compatible with their scheme.

llvm-svn: 212193
2014-07-02 17:26:04 +00:00
Tim Northover
3acd6bd0b6 ARM: add support for v8 ldaex/stlex builtins.
ARMv8 adds (to both AArch32 and AArch64) acquiring and releasing
variants of the exclusive operations, in line with the C++11 memory
model.

This adds support for two new intrinsics to expose them to C & C++
developers directly: __builtin_arm_ldaex and __builtin_arm_stlex, in
direct analogy with the versions with no implicit barrier.

rdar://problem/15885451

llvm-svn: 212175
2014-07-02 12:56:02 +00:00
Aaron Ballman
3cf5c9de14 Escaping a literal character to fix an RST warning.
llvm-svn: 211690
2014-06-25 12:41:28 +00:00
Diego Novillo
913690c7bc Add new debug kind LocTrackingOnly.
Summary:
This new debug emission kind supports emitting line location
information in all instructions, but stops code generation
from emitting debug info to the final output.

This mode is useful when the backend wants to track source
locations during code generation, but it does not want to
produce debug info. This is currently used by optimization
remarks (-Rpass, -Rpass-missed and -Rpass-analysis).

When one of the -Rpass flags is used, the front end will enable
location tracking, only if no other debug option is enabled.

To prevent debug information from being generated, a new debug
info kind LocTrackingOnly causes DIBuilder::createCompileUnit() to
not emit the llvm.dbg.cu annotation. This blocks final code generation
from generating debug info in the back end.

Depends on D4234.

Reviewers: echristo, dblaikie

Subscribers: cfe-commits

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

llvm-svn: 211610
2014-06-24 17:02:17 +00:00
Eli Bendersky
778268df57 Document unroll and unroll_count directives.
Extend the documentation for "#pragma clang loop" hints to include the unroll
and unroll_count directives.

Patch by Mark Heffernan [http://reviews.llvm.org/D4198]

llvm-svn: 211286
2014-06-19 18:12:44 +00:00