Yaron Keren [Mon, 27 Jul 2015 06:35:22 +0000 (06:35 +0000)]
Rename highly-confusing isWhitespace that returns false on \n to
isWhitespaceExceptNL. If that's wasn't bad enough, we have an identically
named function in Basic/CharInfo.h.
While at it, remove unnecessary includes, .str() calls and #ifdef.
llvm-svn: 243260
Richard Smith [Mon, 27 Jul 2015 05:40:23 +0000 (05:40 +0000)]
[modules] Add an assert for redeclarations that we never added to their redecl
chain and fix the cases where it fires.
* Handle the __va_list_tag as a predefined decl. Previously we failed to merge
sometimes it because it's not visible to name lookup. (In passing, remove
redundant __va_list_tag typedefs that we were creating for some ABIs. These
didn't affect the mangling or representation of the type.)
* For Decls derived from Redeclarable that are not in fact redeclarable
(implicit params, function params, ObjC type parameters), remove them from
the list of expected redeclarable decls.
llvm-svn: 243259
NAKAMURA Takumi [Mon, 27 Jul 2015 01:35:30 +0000 (01:35 +0000)]
LoopAccessAnalysis.cpp: Tweak r243239 to avoid side effects. It caused different emissions between gcc and clang.
llvm-svn: 243258
Oleksiy Vyalov [Mon, 27 Jul 2015 01:32:58 +0000 (01:32 +0000)]
Fix jSignalsInfo packet handling.
llvm-svn: 243257
Sean Silva [Mon, 27 Jul 2015 00:46:59 +0000 (00:46 +0000)]
Avoid using uncommon acronym "MSROM".
llvm-svn: 243256
David Majnemer [Sun, 26 Jul 2015 23:17:29 +0000 (23:17 +0000)]
[Targets] Define _M_AMD64 and _M_X64 to a more appropriate value
We used to define them to 1, we should have defined them to 100.
llvm-svn: 243255
Tobias Grosser [Sun, 26 Jul 2015 19:22:35 +0000 (19:22 +0000)]
Simplify some isl expression we use
Suggested-by: Sven Verdoolaege <skimo-polly@kotnet.org>
llvm-svn: 243254
Jingyue Wu [Sun, 26 Jul 2015 19:10:03 +0000 (19:10 +0000)]
Roll forward r243250
r243250 appeared to break clang/test/Analysis/dead-store.c on one of the build
slaves, but I couldn't reproduce this failure locally. Probably a false
positive as I saw this test was broken by r243246 or r243247 too but passed
later without people fixing anything.
llvm-svn: 243253
David Majnemer [Sun, 26 Jul 2015 18:33:32 +0000 (18:33 +0000)]
[AST] It should be impossible to get Int128 or UInt128 into VisitIntegerLiteral
These cases should now be impossible as of r243243.
llvm-svn: 243252
Jingyue Wu [Sun, 26 Jul 2015 18:30:13 +0000 (18:30 +0000)]
Revert r243250
breaks tests
llvm-svn: 243251
Jingyue Wu [Sun, 26 Jul 2015 17:28:13 +0000 (17:28 +0000)]
[TTI/CostModel] improve TTI::getGEPCost and use it in CostModel::getInstructionCost
Summary:
This patch updates TargetTransformInfoImplCRTPBase::getGEPCost to consider
addressing modes. It now returns TCC_Free when the GEP can be completely folded
to an addresing mode.
I started this patch as I refactored SLSR. Function isGEPFoldable looks common
and is indeed used by some WIP of mine. So I extracted that logic to getGEPCost.
Furthermore, I noticed getGEPCost wasn't directly tested anywhere. The best
testing bed seems CostModel, but its getInstructionCost method invokes
getAddressComputationCost for GEPs which provides very coarse estimation. So
this patch also makes getInstructionCost call the updated getGEPCost for GEPs.
This change inevitably breaks some tests because the cost model changes, but
nothing looks seriously wrong -- if we believe the new cost model is the right
way to go, these tests should be updated.
This patch is not perfect yet -- the comments in some tests need to be updated.
I want to know whether this is a right approach before fixing those details.
Reviewers: chandlerc, hfinkel
Subscribers: aschwaighofer, llvm-commits, aemerson
Differential Revision: http://reviews.llvm.org/D9819
llvm-svn: 243250
Simon Pilgrim [Sun, 26 Jul 2015 17:02:25 +0000 (17:02 +0000)]
[X86][SSE] Refreshed vector bit count tests.
llvm-svn: 243249
Simon Pilgrim [Sun, 26 Jul 2015 17:01:16 +0000 (17:01 +0000)]
[X86][AVX2] Refreshed avx2 conversion tests
llvm-svn: 243248
Tobias Grosser [Sun, 26 Jul 2015 15:18:45 +0000 (15:18 +0000)]
bugpoint: make the number of trim iterations a compile-time constant
Around 10 year ago Chris limited this code to a single iteration by just
dropping a break into the loop body. We now make the number of trim iterations
a compile time constant to be able to play with it and see if this can
improve the bugpoint results. We currently use with '3' still a small and
conservative value, but this can be adjusted in the future, if needed.
I tried to look for a trivial test case, but did not succeed yet.
llvm-svn: 243247
Igor Breger [Sun, 26 Jul 2015 14:41:44 +0000 (14:41 +0000)]
Implemented encoding and intrinsics of the following instructions
vunpckhps/pd, vunpcklps/pd,
vpunpcklbw, vpunpckhbw, vpunpcklwd, vpunpckhwd, vpunpckldq, vpunpckhdq, vpunpcklqdq, vpunpckhqdq
Added tests for intrinsics and encoding.
Differential Revision: http://reviews.llvm.org/D11509
llvm-svn: 243246
Johannes Doerfert [Sun, 26 Jul 2015 13:14:38 +0000 (13:14 +0000)]
Remove explicit heap allocation to fix and prevent memory leaks
llvm-svn: 243245
Tobias Grosser [Sun, 26 Jul 2015 11:37:05 +0000 (11:37 +0000)]
Fix typo in comment
llvm-svn: 243244
David Majnemer [Sun, 26 Jul 2015 09:02:26 +0000 (09:02 +0000)]
[MS Extensions] Remove support for the i128 integer literal suffix
There is currently no support in MSVC for using i128 as an integer
literal suffix. In fact, there appears to be no evidence that they have
ever supported this feature in any of their compilers. This was an over
generalization of their actual feature and is a nasty source of bugs.
Why is it a source of bugs? Because most code in clang expects that
evaluation of an integer constant expression won't give them something
that 'long long' can't represent. Instead of providing a meaningful
feature, i128 gives us cute ways of exploding the compiler.
llvm-svn: 243243
David Majnemer [Sun, 26 Jul 2015 09:02:21 +0000 (09:02 +0000)]
[Sema] Refactor AddAlignedAttr to reduce indentation
No functionality change intended, just a tidy-up.
llvm-svn: 243242
Dmitry Vyukov [Sun, 26 Jul 2015 07:45:26 +0000 (07:45 +0000)]
tsan: fix shift overflow
3<<30 fits into 32-bit unsigned, but does not fit into int.
Found by ubsan.
llvm-svn: 243241
Davide Italiano [Sun, 26 Jul 2015 05:35:59 +0000 (05:35 +0000)]
[llvm-dwarfump] Don't rely on global state, part 3.
Some tools used to rely on a global static variable to keep track of the
return value for main(). I changed llvm-cxxdump to use exit(1)
and Rafael shortly after did the same with llvm-readobj. This is
(yet) another step towards the goal.
llvm-svn: 243240
Adam Nemet [Sun, 26 Jul 2015 05:32:14 +0000 (05:32 +0000)]
[LAA] Begin moving the logic of generating checks out of addRuntimeCheck
Summary:
The goal is to start moving us closer to the model where
RuntimePointerChecking will compute and store the checks. Then a client
can filter the check according to its requirements and then use the
filtered list of checks with addRuntimeCheck.
Before the patch, this is all done in addRuntimeCheck. So the patch
starts to split up addRuntimeCheck while providing the old API under
what's more or less a wrapper now.
The new underlying addRuntimeCheck takes a collection of checks now,
expands the code for the bounds then generates the code for the checks.
I am not completely happy with making expandBounds static because now it
needs so many explicit arguments but I don't want to make the type
PointerBounds part of LAI. This should get fixed when addRuntimeCheck
is moved to LoopVersioning where it really belongs, IMO.
Audited the assembly diff of the testsuite (including externals). There
is a tiny bit of assembly churn that is due to the different order the
code for the bounds is expanded now
(MultiSource/Benchmarks/Prolangs-C/bison/conflicts.s and with LoopDist
on 456.hmmer/fast_algorithms.s).
Reviewers: hfinkel
Subscribers: klimek, llvm-commits
Differential Revision: http://reviews.llvm.org/D11205
llvm-svn: 243239
Yaron Keren [Sun, 26 Jul 2015 05:15:24 +0000 (05:15 +0000)]
This test failed on ninja-x64-msvc-RA-centos6.
We could probably get this and the previous three disabled in r243237
working on these builders if MSYS was updated to current MSYS2.
llvm-svn: 243238
Yaron Keren [Sun, 26 Jul 2015 04:59:52 +0000 (04:59 +0000)]
Revert three tests enabled on r243236, they fail on clang-x86-win2008-selfhost.
llvm-svn: 243237
Yaron Keren [Sun, 26 Jul 2015 04:36:39 +0000 (04:36 +0000)]
Enable passing clang tests on Windows/MSYS.
llvm-svn: 243236
Yaron Keren [Sun, 26 Jul 2015 04:09:41 +0000 (04:09 +0000)]
Fix test running under mingw.
llvm-svn: 243235
David Majnemer [Sun, 26 Jul 2015 02:16:35 +0000 (02:16 +0000)]
Try to make the buildbots happy
This test was missing a triple causing it to error out on windows
targets. They accept a much smaller alignment value.
llvm-svn: 243234
David Majnemer [Sun, 26 Jul 2015 01:48:59 +0000 (01:48 +0000)]
[Sema] The alignment of an object has an upper bound from the object file format
Don't use the spelling of the alignment attribute to determine whether
or not an alignment amount makes sense.
llvm-svn: 243233
Rui Ueyama [Sun, 26 Jul 2015 00:50:15 +0000 (00:50 +0000)]
ELF2: Avoid calling std::sort to make output deterministic.
llvm-svn: 243232
Rui Ueyama [Sun, 26 Jul 2015 00:50:13 +0000 (00:50 +0000)]
ELF2: Remove dead code.
llvm-svn: 243231
Chaoren Lin [Sat, 25 Jul 2015 22:06:48 +0000 (22:06 +0000)]
XFAIL TestExprOptions on Linux.
llvm-svn: 243230
Rui Ueyama [Sat, 25 Jul 2015 21:54:50 +0000 (21:54 +0000)]
COFF: Use short identifiers. NFC.
llvm-svn: 243229
Rui Ueyama [Sat, 25 Jul 2015 21:42:33 +0000 (21:42 +0000)]
COFF: Fix image base address for 32-bit.
0x140000000 or 0x180000000 are not correct image base addresses
for 32-bit. They are actually much smaller.
llvm-svn: 243228
Benjamin Kramer [Sat, 25 Jul 2015 20:55:44 +0000 (20:55 +0000)]
[libclang] Use lambdas instead of explicit structs when storing arguments.
This boilerplate code was necessary to move arguments between threads in
C++98, lambdas make this much easier. No functionality change intended.
llvm-svn: 243227
Simon Pilgrim [Sat, 25 Jul 2015 20:41:00 +0000 (20:41 +0000)]
[InstCombine][SSE4A] Standardized references to Length/Width and Index/Start to match AMD docs. NFCI.
llvm-svn: 243226
David Majnemer [Sat, 25 Jul 2015 20:18:14 +0000 (20:18 +0000)]
[AST] Rename RecordLayoutBuilder to ItaniumRecordLayoutBuilder
RecordLayoutBuilder is an inaccruate name because it does not build all
records. It only builds layouts for targets using the Itanium C++ ABI.
llvm-svn: 243225
Yaron Keren [Sat, 25 Jul 2015 20:05:21 +0000 (20:05 +0000)]
Enable clang tests requiring "clang-driver" on mingw.
At least on my mingw system they do pass, let's see what the bots think.
llvm-svn: 243224
Simon Pilgrim [Sat, 25 Jul 2015 17:14:01 +0000 (17:14 +0000)]
[InstCombine] Split off SSE4a tests.
These aren't vector demanded bits tests. More tests to follow.
llvm-svn: 243223
Benjamin Kramer [Sat, 25 Jul 2015 17:10:49 +0000 (17:10 +0000)]
[VTableBuilder] Use range-based for loops. No functional change intended
llvm-svn: 243222
Benjamin Kramer [Sat, 25 Jul 2015 16:31:30 +0000 (16:31 +0000)]
[VTableBuilder] Turn functors into lambdas
No functional change intended.
llvm-svn: 243221
Benjamin Kramer [Sat, 25 Jul 2015 15:44:23 +0000 (15:44 +0000)]
Add missing namespace specifiers.
llvm-svn: 243220
Benjamin Kramer [Sat, 25 Jul 2015 15:33:17 +0000 (15:33 +0000)]
Upgrade for Clang API change.
llvm-svn: 243219
Benjamin Kramer [Sat, 25 Jul 2015 15:27:04 +0000 (15:27 +0000)]
Capture 'this' so GCC 4.7 can find a static members.
llvm-svn: 243218
Benjamin Kramer [Sat, 25 Jul 2015 15:07:25 +0000 (15:07 +0000)]
[AST] Turn the callbacks of lookupInBases and forallBases into a function_ref
This lets us pass functors (and lambdas) without void * tricks. On the
downside we can't pass CXXRecordDecl's Find* members (which are now type
safe) to lookupInBases directly, but a lambda trampoline is a small
price to pay. No functionality change intended.
llvm-svn: 243217
Simon Pilgrim [Sat, 25 Jul 2015 14:07:20 +0000 (14:07 +0000)]
[X86][SSE] Added additional vector sign/zero load extension tests.
llvm-svn: 243216
Tobias Grosser [Sat, 25 Jul 2015 12:31:03 +0000 (12:31 +0000)]
Fix formatting of recent alias-analysis commit
llvm-svn: 243215
Tobias Grosser [Sat, 25 Jul 2015 12:28:56 +0000 (12:28 +0000)]
Prevectorize the schedule of the band (or the point loop in case of tiling)
Contributed-by: Roman Gareev <gareevroman@gmail.com>
llvm-svn: 243214
Benjamin Kramer [Sat, 25 Jul 2015 12:14:04 +0000 (12:14 +0000)]
[Modules] Wrap the main ModuleManager visitor in a function_ref.
Avoids the awkward passing of an opaque void *UserData argument. No
functional change intended.
llvm-svn: 243213
Simon Pilgrim [Sat, 25 Jul 2015 11:17:35 +0000 (11:17 +0000)]
[X86][SSE] Added additional vector sign/zero extension tests.
llvm-svn: 243212
Simon Atanasyan [Sat, 25 Jul 2015 10:18:52 +0000 (10:18 +0000)]
[Mips] Define _DYNAMIC_LINKING symbol if output is a is dynamically linked executable file
llvm-svn: 243211
Simon Atanasyan [Sat, 25 Jul 2015 10:18:44 +0000 (10:18 +0000)]
[Mips] Remove redundant separate functions to calculate relocations. Do
that inline.
No functional changes.
llvm-svn: 243210
Simon Atanasyan [Sat, 25 Jul 2015 10:18:39 +0000 (10:18 +0000)]
[Mips] Remove duplicated code by joining the same functions
llvm-svn: 243209
Simon Atanasyan [Sat, 25 Jul 2015 10:18:33 +0000 (10:18 +0000)]
[Mips] Do not sign-extend addends read from RELA relocation records
llvm-svn: 243208
David Majnemer [Sat, 25 Jul 2015 06:07:59 +0000 (06:07 +0000)]
[clang-cl] Add fallback support for /Zl
llvm-svn: 243207
David Majnemer [Sat, 25 Jul 2015 05:57:24 +0000 (05:57 +0000)]
[CodeGen] Don't UBSan-ize the argument to __builtin_frame_address
__builtin_frame_address requires its argument to be a constant
expression which already implies that it cannot have undefined behavior.
However, we used EmitScalarExpr to emit the argument causing UBSan to
try to check for overflow.
Instead, use the constant expression emission system.
This fixes PR24256.
llvm-svn: 243206
Rui Ueyama [Sat, 25 Jul 2015 03:39:29 +0000 (03:39 +0000)]
COFF: ARM: Support import functions.
llvm-svn: 243205
Rui Ueyama [Sat, 25 Jul 2015 03:25:28 +0000 (03:25 +0000)]
COFF: ARM: Implement BLX23T relocation.
llvm-svn: 243204
Chen Li [Sat, 25 Jul 2015 03:21:06 +0000 (03:21 +0000)]
[LoopUnswitch] Improve loop unswitch pass to find trivial unswitch conditions more effectively
Summary:
This patch improves trivial loop unswitch.
The current trivial loop unswitch only checks if loop header's terminator contains a trivial unswitch condition. But if the loop header only has one reachable successor (due to intentionally or unintentionally missed code simplification), we should consider the successor as part of the loop header. Therefore, instead of stopping at loop header's terminator, we should keep traversing its successors within loop until reach a *real* conditional branch or switch (whose condition can not be constant folded). This change will enable a single -loop-unswitch pass to unswitch multiple trivial conditions (unswitch one trivial condition could open opportunity to unswitch another one in the same loop), while the old implementation can unswitch only one per pass.
Reviewers: reames, broune
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D11481
llvm-svn: 243203
Rui Ueyama [Sat, 25 Jul 2015 03:19:34 +0000 (03:19 +0000)]
COFF: ARM: Implement BRANCH24T relocation.
llvm-svn: 243202
Rui Ueyama [Sat, 25 Jul 2015 03:03:46 +0000 (03:03 +0000)]
COFF: ARM: Implement MOV32T relocation.
llvm-svn: 243201
Jason Molenda [Sat, 25 Jul 2015 02:39:42 +0000 (02:39 +0000)]
Add some initial logging for when lldb is searching for binaries,
dSYMs, or reading binaries out of memory to the 'Host' log channel.
There's more to be done here, both for Mac and for other platforms,
but the initial set of new loggings are useful enough to check in
at this point.
llvm-svn: 243200
Rui Ueyama [Sat, 25 Jul 2015 02:25:14 +0000 (02:25 +0000)]
COFF: ARM: Set correct entry point address.
llvm-svn: 243199
Juergen Ributzka [Sat, 25 Jul 2015 02:16:53 +0000 (02:16 +0000)]
[AArch64][FastISel] Always use an AND instruction when truncating to non-legal types.
When truncating to non-legal types (such as i16, i8 and i1) always use an AND
instruction to mask out the upper bits. This was only done when the source type
was an i64, but not when the source type was an i32.
This commit fixes this and adds the missing i32 truncate tests.
This fixes rdar://problem/
21990703.
llvm-svn: 243198
Rui Ueyama [Sat, 25 Jul 2015 01:44:32 +0000 (01:44 +0000)]
COFF: Handle base relocation as a tuple of relocation type and RVA. NFC.
On x64 and x86, we use only one base relocation type, so we handled
base relocations just as a list of RVAs. That doesn't work well for
ARM becuase we have to handle two types of base relocations on ARM.
This patch changes the type of base relocation from uint32_t to
{reltype, uint32_t} to make it easy to port this code to ARM.
llvm-svn: 243197
Davide Italiano [Sat, 25 Jul 2015 01:19:32 +0000 (01:19 +0000)]
[SemaTemplate] Detect instantiation of unparsed exceptions.
This fixes the clang crash reported in PR24000.
Differential Revision: http://reviews.llvm.org/D11341
llvm-svn: 243196
Rui Ueyama [Sat, 25 Jul 2015 01:16:06 +0000 (01:16 +0000)]
COFF: Split ImportThunkChunk into x86 and x64. NFC.
This change should make it easy to port this code to ARM.
llvm-svn: 243195
Rui Ueyama [Sat, 25 Jul 2015 01:16:04 +0000 (01:16 +0000)]
COFF: Do not align import thunks on 16-byte boundaries on x86.
Looks like MSVC linker aligns them only on x64.
llvm-svn: 243194
Jim Ingham [Sat, 25 Jul 2015 00:52:38 +0000 (00:52 +0000)]
Shorten the lldb timeout, we were seeing occasional failure because
lldb didn't wake up before the target function got a chance to complete.
<rdar://problem/
21990308>
llvm-svn: 243193
Eric Christopher [Sat, 25 Jul 2015 00:48:08 +0000 (00:48 +0000)]
Fix PPCMaterializeInt to check the size of the integer based on the
extension property we're requesting - zero or sign extended.
This fixes cases where we want to return a zero extended 32-bit -1
and not be sign extended for the entire register. Also updated the
already out of date comment with the current behavior.
llvm-svn: 243192
Eric Christopher [Sat, 25 Jul 2015 00:48:06 +0000 (00:48 +0000)]
PPCMaterializeInt should only take a ConstantInt so represent this in the prototype
and fix up all uses.
llvm-svn: 243191
Nick Kledzik [Sat, 25 Jul 2015 00:44:37 +0000 (00:44 +0000)]
Add initial CODE_OWNERS.TXT file
llvm-svn: 243190
Akira Hatanaka [Sat, 25 Jul 2015 00:33:57 +0000 (00:33 +0000)]
Fix test case.
This is a follow-up to r243185, which made changes to pass subtarget
feature "+reserve-x18" instead of backend option "-aarch64-reserve-x18".
llvm-svn: 243189
Rui Ueyama [Sat, 25 Jul 2015 00:20:06 +0000 (00:20 +0000)]
COFF: Don't assume !is64() means i386.
In many places we assumed that is64() means AMD64 and i386 otherwise.
This assumption is not sound because Windows also supports ARM.
The linker doesn't support ARM yet, but this is a first step.
llvm-svn: 243188
Dawn Perchik [Sat, 25 Jul 2015 00:19:39 +0000 (00:19 +0000)]
Specify a language to use when parsing expressions.
This patch adds the option -l/--language to the expression command, for
use when setting the language options or choosing an alternate FE. If
not specified, the target.language setting is used.
Reviewed by: clayborg
Subscribers: lldb-commits
Differential Revision: http://reviews.llvm.org/D11447
llvm-svn: 243187
Akira Hatanaka [Sat, 25 Jul 2015 00:18:31 +0000 (00:18 +0000)]
[AArch64] Define subtarget feature "reserve-x18", which is used to decide
whether register x18 should be reserved.
This change is needed because we cannot use a backend option to set
cl::opt "aarch64-reserve-x18" when doing LTO.
Out-of-tree projects currently using cl::opt option "-aarch64-reserve-x18"
to reserve x18 should make changes to add subtarget feature "reserve-x18"
to the IR.
rdar://problem/
21529937
Differential Revision: http://reviews.llvm.org/D11463
llvm-svn: 243186
Akira Hatanaka [Sat, 25 Jul 2015 00:18:00 +0000 (00:18 +0000)]
[AArch64] Pass subtarget feature "+reserve-x18" instead of passing backend
option "-aarch64-reserve-x18".
This change is needed since backend options do not make it to the backend
when doing LTO and are not capable of changing the behavior of code-gen
passes on a per-function basis.
rdar://problem/
21529937
Differential Revision: http://reviews.llvm.org/D11462
llvm-svn: 243185
Michael J. Spencer [Sat, 25 Jul 2015 00:09:22 +0000 (00:09 +0000)]
[ELF2] Remove broken test.
The exact error the system returns for this case is varies between OS's and file systems.
llvm-svn: 243184
Duncan P. N. Exon Smith [Fri, 24 Jul 2015 23:59:25 +0000 (23:59 +0000)]
DI/Verifier: Fix argument bitrot in DILocalVariable
Add a verifier check that `DILocalVariable`s of tag
`DW_TAG_arg_variable` always have a non-zero 'arg:' field, and those of
tag `DW_TAG_auto_variable` always have a zero 'arg:' field. These are
the only configurations that are properly understood by the backend.
(Also, fix the bad examples in LangRef and test/Assembler, and fix the
bug in Kaleidoscope Ch8.)
A large number of testcases seem to have bitrotted their way forward
from some ancient version of the debug info hierarchy that didn't have
`arg:` parameters. If you have out-of-tree testcases that start failing
in the verifier and you don't care enough to get the `arg:` right, you
may have some luck just calling:
sed -e 's/, arg: 0/, arg: 1/'
or some such, but I hand-updated the ones in tree.
llvm-svn: 243183
Rui Ueyama [Fri, 24 Jul 2015 23:51:14 +0000 (23:51 +0000)]
COFF: Implement Safe SEH support for x86.
An object file compatible with Safe SEH contains a .sxdata section.
The section contains a list of symbol table indices, each of which
is an exception handler function. A safe SEH-enabled executable
contains a list of exception handler RVAs. So, what the linker has
to do to support Safe SEH is basically to read the .sxdata section,
interpret the contents as a list of symbol indices, unique-fy and
sort their RVAs, and then emit that list to .rdata. This patch
implements that feature.
llvm-svn: 243182
Jim Ingham [Fri, 24 Jul 2015 23:40:32 +0000 (23:40 +0000)]
Make sure we resolve ~ in paths coming from the plist in a dSYM before adding them
to the path remappings.
Also don't add the paths to the path mapping when DebugSymbols tells up about files, since
we'll just do that again when we read in the dSYM.
<rdar://problem/
21986208>
llvm-svn: 243181
Greg Clayton [Fri, 24 Jul 2015 23:38:01 +0000 (23:38 +0000)]
Use double-checked locking to avoid locking the Module mutex if we don't need to. This avoid a deadlock we were seeing in Xcode.
<rdar://problem/
21512067>
llvm-svn: 243180
Michael Kruse [Fri, 24 Jul 2015 23:30:31 +0000 (23:30 +0000)]
Normalize whitespace in makefiles
Tabs for rules and space for line continuations.
llvm-svn: 243179
Rui Ueyama [Fri, 24 Jul 2015 23:24:45 +0000 (23:24 +0000)]
COFF: Fix base relocation type for x86.
llvm-svn: 243178
Rui Ueyama [Fri, 24 Jul 2015 22:58:44 +0000 (22:58 +0000)]
COFF: Fix __ImageBase symbol relocation.
__ImageBase is a special symbol whose value is the image base address.
Previously, we handled __ImageBase symbol as an absolute symbol.
Absolute symbols point to specific locations in memory and the locations
never change even if an image is base-relocated. That means that we
don't have base relocation entries for absolute symbols.
This is not a case for __ImageBase. If an image is base-relocated, its
base address changes, and __ImageBase needs to be shifted as well.
So we have to have base relocations for __ImageBase. That means that
__ImageBase is not really an absolute symbol but a different kind of
symbol.
In this patch, I introduced a new type of symbol -- DefinedRelative.
DefinedRelative is similar to DefinedAbsolute, but it has not a VA but RVA
and is a subject of base relocation. Currently only __ImageBase is of
the new symbol type.
llvm-svn: 243176
Jason Molenda [Fri, 24 Jul 2015 22:42:03 +0000 (22:42 +0000)]
Log socket communications to LIBLLDB_LOG_COMMUNICATION instead of
the Host channel.
http://reviews.llvm.org/D11497
llvm-svn: 243175
Zachary Turner [Fri, 24 Jul 2015 22:32:22 +0000 (22:32 +0000)]
Some fixes to get LLDB compiling with MSVC 2015.
llvm-svn: 243174
Alex Lorenz [Fri, 24 Jul 2015 22:22:50 +0000 (22:22 +0000)]
MIR Serialization: Serialize MachineFrameInfo's callee saved information.
This commit serializes the callee saved information from the class
'MachineFrameInfo'. This commit extends the YAML mappings for the fixed and
the ordinary stack objects and adds an optional 'callee-saved-register'
attribute. This attribute is used to serialize the callee save information.
llvm-svn: 243173
Lawrence Hu [Fri, 24 Jul 2015 22:01:49 +0000 (22:01 +0000)]
Handle loop with negtive induction variable increment
This patch extend LoopReroll pass to hand the loops which
is similar to the following:
while (len > 1) {
sum4 += buf[len];
sum4 += buf[len-1];
len -= 2;
}
llvm-svn: 243171
Alexey Samsonov [Fri, 24 Jul 2015 22:01:07 +0000 (22:01 +0000)]
[CMake] Workaround for PR24222: don't fail if we can't target COMPILER_RT_TEST_TARGET_TRIPLE unless it was explicitly set.
Summary:
Although we assume that we can always target host triple, relax
this check to avoid failing at configure-time for cases when we are
not able to correctly infer/verify host triple for some reasons.
See http://llvm.org/bugs/show_bug.cgi?id=24222 for more details.
Reviewers: hans
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D11496
llvm-svn: 243170
Aaron Ballman [Fri, 24 Jul 2015 21:49:29 +0000 (21:49 +0000)]
Replacing some diagnostic string literals with tablegen equivalents because the wording is identical; NFC.
llvm-svn: 243169
Michael Kruse [Fri, 24 Jul 2015 21:40:22 +0000 (21:40 +0000)]
Add isl_ffs.c to file list in autoconf builds
In most configurations it doesn't contain any symbol, but add for
completeness.
llvm-svn: 243168
Pete Cooper [Fri, 24 Jul 2015 21:38:01 +0000 (21:38 +0000)]
Remove unnecessary null check. NFC.
Since both places which set this variable do so with dyn_cast, and not
dyn_cast_or_null, its impossible to get a nullptr here, so we can remove
the check.
llvm-svn: 243167
Siva Chandra [Fri, 24 Jul 2015 21:30:58 +0000 (21:30 +0000)]
Add option eTypeOptionHideEmptyAggregates.
Summary:
For certain data structures, when the synthetic child provider returns
zero children, a summary like "Empty instance of <typename>" could be
more appropriate than something like "size=0 {}". This new option helps
hide the trailing "{}".
This is also exposed with a -h option for the command "type summary add".
Reviewers: granata.enrico
Subscribers: lldb-commits
Differential Revision: http://reviews.llvm.org/D11473
llvm-svn: 243166
Hans Wennborg [Fri, 24 Jul 2015 21:24:48 +0000 (21:24 +0000)]
LibompMicroTests.cmake: Invoke 'test' instead of using '[ x -eq y ]'
I was getting this cmake error on Mac OS X:
CMake Error: Error in cmake code at
/tmp/openmp/runtime/cmake/LibompMicroTests.cmake:140:
Parse error. Function missing ending ")". Instead found bad character with text "[".
Perhaps invoking 'test' is less confusing for cmake.
Differential Revision: http://reviews.llvm.org/D11493
llvm-svn: 243165
Pete Cooper [Fri, 24 Jul 2015 21:13:43 +0000 (21:13 +0000)]
Use make_range(rbegin(), rend()) to allow foreach loops. NFC.
Instead of the pattern
for (auto I = x.rbegin(), E = x.end(); I != E; ++I)
we can use make_range to construct the reverse range and iterate using
that instead.
llvm-svn: 243163
Duncan P. N. Exon Smith [Fri, 24 Jul 2015 21:11:06 +0000 (21:11 +0000)]
DI: Fix unit tests after r243160
These always empty fields are gone, so don't test that they're empty.
llvm-svn: 243162
Michael J. Spencer [Fri, 24 Jul 2015 21:03:07 +0000 (21:03 +0000)]
[ELF2] Add a new ELF linker based on the new PE/COFF linker.
Differential Revision: http://reviews.llvm.org/D11188
llvm-svn: 243161
Duncan P. N. Exon Smith [Fri, 24 Jul 2015 20:56:36 +0000 (20:56 +0000)]
DI: Remove unnecessary DICompositeTypeBase
Remove unnecessary and confusing common base class for `DICompositeType`
and `DISubroutineType`.
While at a high-level `DISubroutineType` is a sort of composite of other
types, it has no shared code paths, and its fields are completely
disjoint. This relationship was left over from the old debug info
hierarchy.
llvm-svn: 243160
Duncan P. N. Exon Smith [Fri, 24 Jul 2015 20:56:10 +0000 (20:56 +0000)]
DI: Simplify DebugInfoFinder::processType(), NFC
Handle `DISubroutineType` up-front rather than as part of a branch for
`DICompositeTypeBase`. The only shared code path was looking through
the base type, but `DISubroutineType` can never have a base type.
This also removes the last use of `DICompositeTypeBase`, since we can
strengthen the cast to `DICompositeType`.
llvm-svn: 243159
Duncan P. N. Exon Smith [Fri, 24 Jul 2015 20:46:46 +0000 (20:46 +0000)]
DI: Remove dead code: getDICompositeType()
llvm-svn: 243158