Commit Graph

6123 Commits

Author SHA1 Message Date
Rafael Espindola e26e7d308c Fail early on unknown appending linkage variables.
In practice only a few well known appending linkage variables work.

Currently if codegen sees an unknown appending linkage variable it will
just print it as a regular global. That is wrong as the symbol in the
produced object file has different semantics as the one provided by the
appending linkage.

This just errors early instead of producing a broken .o.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@269706 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-16 21:14:24 +00:00
Renato Golin 495123c113 [Docs] Add some requirements to the Testing Guide
Patch by Diana Picus.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@269566 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-14 14:27:40 +00:00
John Regehr 39fa507537 [Docs] clarify semantics of x.with.overflow intrinsics
Differential Revision: http://reviews.llvm.org/D20151



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@269346 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-12 20:55:09 +00:00
Sanjoy Das d2e75bd7aa All llvm.deoptimize declarations must use the same calling convention
This new verifier rule lets us unambigously pick a calling convention
when creating a new declaration for
`@llvm.experimental.deoptimize.<ty>`.  It is also congruent with our
lowering strategy -- since all calls to `@llvm.experimental.deoptimize`
are lowered to calls to `__llvm_deoptimize`, it is reasonable to enforce
a unique calling convention.

Some of the tests that were breaking this verifier rule have had to be
split up into different .ll files.

The inliner was violating this rule as well, and has been fixed to avoid
producing invalid IR.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@269261 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-12 01:17:38 +00:00
Chris Lattner c8eaae6e70 Most common problem is that I get md5 hashes, not crypt hashes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@269157 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-11 03:47:36 +00:00
Kostya Serebryany 2ec40a608f [libFuzzer] mention the AFL driver in the docs
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@269143 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-10 23:52:47 +00:00
Rafael Espindola 11ab0c3a5d Make "@name =" mandatory for globals in .ll files.
An oddity of the .ll syntax is that the "@var = " in

@var = global i32 42

is optional. Writing just

global i32 42

is equivalent to

@0 = global i32 42

This means that there is a pretty big First set at the top level. The
current implementation maintains it manually. I was trying to refactor
it, but then started wondering why keep it a all. I personally find the
above syntax confusing. It looks like something is missing.

This patch removes the feature and simplifies the parser.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@269096 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-10 18:22:45 +00:00
Renato Golin 50b2db8fa0 [docs] Fix unexpected indentation in HowToCrossCompileLLVM.rst
Seems like my sphynx version is different than the one in the bot, as it
accepted everything locally. I think this is the right fix...

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@269062 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-10 14:02:46 +00:00
Renato Golin 598682f15c [docs] Change CrossCompilation guidde to reflect changes in Clang/GCC
HowToCrossCompile was outdated and generating too much traffic on the mailing
list with similar queries. This change helps offset most of the problems that
were reported recently including:

 * Removing the -ccc-gcc-name, adding --sysroot
 * Making references to Debian's multiarch for target libraries
 * Expanding -DCMAKE_CXX_FLAGS for both GCC and Clang
 * Some formatting and clarifications in the text

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@269054 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-10 12:54:12 +00:00
Kostya Serebryany c48930b338 [libFuzzer] add a test for libFuzzer+ubsan, extend the docs on using libFuzzer+ubsan
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@268968 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-09 21:02:36 +00:00
Kostya Serebryany ce06f035f9 [libFuzzer] reshuffle docs more
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@268961 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-09 19:32:10 +00:00
Kostya Serebryany 464c4e89a5 [libFuzzer] reshuffle docs
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@268959 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-09 19:29:53 +00:00
Kostya Serebryany 3fc00408ae [libFuzzer] better document the -merge=1 flag, part 2
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@268958 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-09 19:23:28 +00:00
Kostya Serebryany 2f120989e3 [libFuzzer] better document the -merge=1 flag
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@268957 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-09 19:11:36 +00:00
Kostya Serebryany 2372d8bb45 [libFuzzer] modify the docs for startup/init
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@268824 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-06 23:51:28 +00:00
Kostya Serebryany 3eeac863a6 [libFuzzer] tweak the documentation about rss_limit
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@268822 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-06 23:41:11 +00:00
Kostya Serebryany f01dfdd8aa [libFuzzer] enhance -rss_limit_mb and enable by default. Now it will print the OOM reproducer.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@268821 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-06 23:38:07 +00:00
Kostya Serebryany a021eb7c7a [libFuzzer] more trophies
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@268788 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-06 20:14:48 +00:00
Justin Bogner 9ed38db20e SDAG: Rename Select->SelectImpl and repurpose Select as returning void
This is a step towards removing the rampant undefined behaviour in
SelectionDAG, which is a part of llvm.org/PR26808.

We rename SelectionDAGISel::Select to SelectImpl and update targets to
match, and then change Select to return void and consolidate the
sketchy behaviour we're trying to get away from there.

Next, we'll update backends to implement `void Select(...)` instead of
SelectImpl and eventually drop the base Select implementation.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@268693 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-05 23:19:08 +00:00
Kostya Serebryany b69177e91e [libFuzzer] better docs for coverage
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@268656 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-05 18:07:09 +00:00
James Y Knight 257fabb186 Remove bit-rotten CppBackend.
This backend was supposed to generate C++ code which will re-construct
the LLVM IR passed as input. This seems to me to have very marginal
usefulness in the first place.

However, the code has never been updated to use IRBuilder, which makes
its current value negative -- people who look at the output may be
steered to use the *wrong* C++ APIs to construct IR.

Furthermore, it's generated code that doesn't compile since at least
2013.

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@268631 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-05 14:35:40 +00:00
Jingyue Wu 811f094f9e [NVPTX:doc] Update code examples to conform to the latest IR.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@268522 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-04 17:34:57 +00:00
David L Kreitzer ded3b7b8d2 Add an address space for the X86 SS segment.
Patch by Michael LeMay (michael.lemay@intel.com)

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


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@268431 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-03 20:16:08 +00:00
Simon Pilgrim 84b8ada543 Document the LLVM_ENABLE_EXPENSIVE_CHECKS cmake option introduced in r268050
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@268197 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-01 15:27:47 +00:00
Sanjoy Das 793e61921c [LowerGuardIntrinsics] Keep track of !make.implicit metadata
If a guard call being lowered by LowerGuardIntrinsics has the
`!make.implicit` metadata attached, then reattach the metadata to the
branch in the resulting expanded form of the intrinsic.  This allows us
to implement null checks as guards and still get the benefit of implicit
null checks.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@268148 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-30 00:55:59 +00:00