Saleem Abdulrasool [Wed, 11 Feb 2015 05:20:50 +0000 (05:20 +0000)]
unwind: clean up some -Werror=return-type warnings
Mark that the functions always return or abort if the register class is
unhandled. Avoid placing the abort in the switch to permit -Wswitch-cover to
catch missing values.
llvm-svn: 228808
Saleem Abdulrasool [Wed, 11 Feb 2015 05:20:47 +0000 (05:20 +0000)]
unwind: clean up more -Wformat warnings
This makes compilation on ARM -Wformat clean with GCC. NFC.
llvm-svn: 228807
Saleem Abdulrasool [Wed, 11 Feb 2015 05:20:44 +0000 (05:20 +0000)]
unwind: clean up straggling -Wundef warning
Conservatively define __ARM_ARCH to 4 in the case that it is undefined (e.g.
with GCC).
llvm-svn: 228806
Saleem Abdulrasool [Wed, 11 Feb 2015 05:20:42 +0000 (05:20 +0000)]
unwind: silence -Wconversion warnings
Clean up implicit uint8_t to uint32_t conversion warnings identified by GCC.
llvm-svn: 228805
Ilia K [Wed, 11 Feb 2015 05:02:44 +0000 (05:02 +0000)]
Clean up test/tools/lldb-mi/TestMiNotification.py (MI)
llvm-svn: 228804
Ilia K [Wed, 11 Feb 2015 04:58:41 +0000 (04:58 +0000)]
Fix segfault notification in lldb-mi
Summary:
This patch adds system exception handling in lldb-mi + tests.
All tests pass on OS X.
Reviewers: zturner, abidh, clayborg
Reviewed By: clayborg
Subscribers: emaste, lldb-commits, zturner, clayborg, abidh
Differential Revision: http://reviews.llvm.org/D7500
llvm-svn: 228803
Ilia K [Wed, 11 Feb 2015 04:52:54 +0000 (04:52 +0000)]
Fix CMIUtilString::SplitConsiderQuotes (MI)
Summary:
This method doesn't work properly. Here is an example:
```
CMIUtilString test("\"hello\" \"\\\" world \\\" !\"");
CMIUtilString::VecString_t res;
test.SplitConsiderQuotes(" ", res);
```
Before this patch the result was as following:
```
(lldb) print res
(CMIUtilString::VecString_t) $1 = size=4 {
[0] = (std::__1::string = "\"hello\"")
[1] = (std::__1::string = "\"\\\"")
[2] = (std::__1::string = "world")
[3] = (std::__1::string = "\\\" !\"")
}
```
This patch fixes that error and now it looks like following:
```
(lldb) print res
(CMIUtilString::VecString_t) $1 = size=2 {
[0] = (std::__1::string = "\"hello\"")
[1] = (std::__1::string = "\"\\\" world \\\" !\"")
}
```
Reviewers: abidh, emaste, clayborg
Reviewed By: clayborg
Subscribers: lldb-commits, emaste, clayborg, abidh
Differential Revision: http://reviews.llvm.org/D7532
llvm-svn: 228802
Ilia K [Wed, 11 Feb 2015 04:51:41 +0000 (04:51 +0000)]
Close terminal after LaunchInTerminalTestCase test
Summary:
The test_launch_in_terminal test leaves a running terminal.
This patch adds "exit" after debugging with eLaunchFlagLaunchInTTY flag.
Reviewers: jingham, zturner, clayborg
Reviewed By: clayborg
Subscribers: emaste, vharron, lldb-commits, clayborg, jingham, zturner
Differential Revision: http://reviews.llvm.org/D7468
llvm-svn: 228801
Zachary Turner [Wed, 11 Feb 2015 03:28:02 +0000 (03:28 +0000)]
Use ADDITIONAL_HEADER_DIRS in all LLVM CMake projects.
This allows IDEs to recognize the entire set of header files for
each of the core LLVM projects.
Differential Revision: http://reviews.llvm.org/D7526
Reviewed By: Chris Bieneman
llvm-svn: 228798
Justin Bogner [Wed, 11 Feb 2015 03:05:02 +0000 (03:05 +0000)]
Revert "[UBSan] Enable -Wglobal-constructors."
We're still using global constructors when not on linux, so this was
causing warnings on Darwin. Reverting for now.
This reverts r228384.
llvm-svn: 228795
Justin Bogner [Wed, 11 Feb 2015 02:53:03 +0000 (02:53 +0000)]
InstrProf: Add a test for PR22531
This is a test for the llvm change in r228793. We need to make sure
that names referred to by coverage end up in the right section, or the
coverage tools won't work.
llvm-svn: 228794
Justin Bogner [Wed, 11 Feb 2015 02:52:44 +0000 (02:52 +0000)]
InstrProf: Lower coverage mappings by setting their sections appropriately
Add handling for __llvm_coverage_mapping to the InstrProfiling
pass. We need to make sure the constant and any profile names it
refers to are in the correct sections, which is easier and cleaner to
do here where we have to know about profiling sections anyway.
This is really tricky to test without a frontend, so I'm committing
the test for the fix in clang. If anyone knows a good way to test this
within LLVM, please let me know.
Fixes PR22531.
llvm-svn: 228793
Richard Smith [Wed, 11 Feb 2015 02:41:33 +0000 (02:41 +0000)]
Add a warning for direct-list-initialization of a variable with a deduced type
(or of a lambda init-capture, which is sort-of such a variable). The semantics
of such constructs will change when we implement N3922, so we intend to warn on
this in Clang 3.6 then change the semantics in Clang 3.7.
llvm-svn: 228792
Enrico Granata [Wed, 11 Feb 2015 02:35:39 +0000 (02:35 +0000)]
Introduce the notion of "runtime support values"
A runtime support value is a ValueObject whose only purpose is to support some language runtime's operation, but it does not directly provide any user-visible benefit
As such, unless the user is working on the runtime support, it is mostly safe for them not to see such a value when debugging
It is a language runtime's job to check whether a ValueObject is a support value, and that - in conjunction with a target setting - is used by frame variable and target variable
SBFrame::GetVariables gets a new overload with yet another flag to dictate whether to return those support values to the caller - that which defaults to the setting's value
rdar://problem/
15539930
llvm-svn: 228791
Andrew Kaylor [Wed, 11 Feb 2015 02:16:34 +0000 (02:16 +0000)]
Temporary workaround to fix MSVC 2012 build problems
llvm-svn: 228788
Reid Kleckner [Wed, 11 Feb 2015 02:06:47 +0000 (02:06 +0000)]
Fix invalid LLVM IR in PruneEH tests
llvm-svn: 228786
Richard Smith [Wed, 11 Feb 2015 01:48:47 +0000 (01:48 +0000)]
PR21857: weaken an incorrect assertion.
llvm-svn: 228785
Eric Fiselier [Wed, 11 Feb 2015 01:31:02 +0000 (01:31 +0000)]
Update double_include.sh.cpp for new headers.
llvm-svn: 228784
Eric Fiselier [Wed, 11 Feb 2015 01:25:57 +0000 (01:25 +0000)]
libc++ tests: wait_until.pass test sporadically fails (bug 21998)
Summary:
Hello Howard,
While running the libc++ tests on our ARM boards, we encounter sporadic failures of the two tests:
test/std/thread/futures/futures.shared_future/wait_until.pass.cpp
test/std/thread/futures/futures.unique_future/wait_until.pass.cpp
The worker thread might not finish yet when the main thread checks its result.
I filed the bug 21998 for this case: http://llvm.org/bugs/show_bug.cgi?id=21998
Would you be able to review this please?
Thank you.
Oleg
Reviewers: howard.hinnant, mclow.lists, danalbert, jroelofs, EricWF
Reviewed By: jroelofs, EricWF
Subscribers: EricWF, mclow.lists, aemerson, llvm-commits
Differential Revision: http://reviews.llvm.org/D6750
llvm-svn: 228783
Reid Kleckner [Wed, 11 Feb 2015 01:23:16 +0000 (01:23 +0000)]
Don't promote asynch EH invokes of nounwind functions to calls
If the landingpad of the invoke is using a personality function that
catches asynch exceptions, then it can catch a trap.
Also add some landingpads to invalid LLVM IR test cases that lack them.
Over-the-shoulder reviewed by David Majnemer.
llvm-svn: 228782
Eric Fiselier [Wed, 11 Feb 2015 01:18:05 +0000 (01:18 +0000)]
Make convert_to_integral.pass.cpp more platform generic.
Don't depend on the underlying types of enums and wchar_t.
llvm-svn: 228781
Eric Fiselier [Wed, 11 Feb 2015 01:07:48 +0000 (01:07 +0000)]
Fix libcxxabi's library and object root for tests.
llvm-svn: 228779
Eric Fiselier [Wed, 11 Feb 2015 01:03:44 +0000 (01:03 +0000)]
Remove default definition for libcxx_obj_dir because it doesn't make sense
llvm-svn: 228778
Enrico Granata [Wed, 11 Feb 2015 00:37:54 +0000 (00:37 +0000)]
As part of the cleanup when a process dies, tell watchpoints to forget their previously recorded values
Because types are not reliably protected against the death of their owners, having ValueObjects lurking around like that past the useful lifetime of their owner processes is a potential source of crashes
That is - in itself - worth fixing at some point, but for this case, watchpoints holding on to old values don't offer enough value to make the larger fix worth
Fixes rdar://
19788756
llvm-svn: 228777
Tom Stellard [Wed, 11 Feb 2015 00:34:35 +0000 (00:34 +0000)]
R600/SI: Store immediate offsets > 12-bits in soffset
This will save us from having to extend these offsets to 64-bits
and storing them in a pair of vgprs.
llvm-svn: 228776
Tom Stellard [Wed, 11 Feb 2015 00:34:32 +0000 (00:34 +0000)]
R600/SI: Add soffset operand to mubuf addr64 instruction
We were previously hard-coding soffset to 0.
llvm-svn: 228775
Zachary Turner [Wed, 11 Feb 2015 00:33:00 +0000 (00:33 +0000)]
Fix warning due to unused private member variable.
llvm-svn: 228774
Zachary Turner [Wed, 11 Feb 2015 00:13:39 +0000 (00:13 +0000)]
Fix some warnings due to -Wcovered-switch-default.
llvm-svn: 228773
Alexey Samsonov [Wed, 11 Feb 2015 00:05:31 +0000 (00:05 +0000)]
[UBSan] Add report deduplication for -fsanitize=function.
Summary:
Make sure we don't print the error report from -fsanitize=function
twice for the same source location, as we do in another UBSan handlers.
Test Plan: check-ubsan test suite
Reviewers: rsmith, pcc
Reviewed By: pcc
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D7524
llvm-svn: 228772
Greg Clayton [Wed, 11 Feb 2015 00:04:33 +0000 (00:04 +0000)]
Fixed a crasher that could happen if:
- you have a type that contains a typedef to a VectorType or an ExtVectorType
- that type is returned from an ARM function that LLDB steps over so we try to figure out the return type
- we try to determine if the type is a homogeneous aggregate type and we crash
We get not using getAs() when we should have been and using llvm::cast caused an assertion crash when the typedef type didn't return a valid VectorType or ExtVectorType.
<rdar://problem/
19646550>
llvm-svn: 228771
Chaoren Lin [Wed, 11 Feb 2015 00:00:39 +0000 (00:00 +0000)]
Added CoreMedia.cpp to CMakeLists.txt for egranata.
llvm-svn: 228770
Reid Kleckner [Wed, 11 Feb 2015 00:00:21 +0000 (00:00 +0000)]
Emit landing pads for SEH even if nounwind is present
Disabling exceptions applies nounwind to lots of functions. SEH catches
asynch exceptions, so emit the landing pad anyway.
llvm-svn: 228769
Zachary Turner [Tue, 10 Feb 2015 23:46:48 +0000 (23:46 +0000)]
Convert std::make_unique<> to llvm::make_unique<>.
llvm-svn: 228768
Petar Jovanovic [Tue, 10 Feb 2015 23:36:19 +0000 (23:36 +0000)]
[mips] Add __clear_cache() definition for non-Android systems
Make sure clear_cache() builtin has an appropriate definition for Linux.
Call syscall(NR_cacheflush, ...).
Differential Revision: http://reviews.llvm.org/D7205
llvm-svn: 228767
Adrian Prantl [Tue, 10 Feb 2015 23:32:56 +0000 (23:32 +0000)]
Add the missing testcase for r228764.
llvm-svn: 228766
Petar Jovanovic [Tue, 10 Feb 2015 23:30:14 +0000 (23:30 +0000)]
Fix makeLibCall argument (signed) in SoftenFloatRes_XINT_TO_FP function
The isSigned argument of makeLibCall function was hard-coded to false
(unsigned). This caused zero extension on MIPS64 soft float.
As the result SingleSource/Benchmarks/Stanford/FloatMM test and
SingleSource/UnitTests/2005-07-17-INT-To-FP test failed.
The solution was to use the proper argument.
Patch by Strahinja Petrovic.
Differential Revision: http://reviews.llvm.org/D7292
llvm-svn: 228765
Adrian Prantl [Tue, 10 Feb 2015 23:18:28 +0000 (23:18 +0000)]
Debug Info: Support variables that are described by more than one MMI
table entry. This happens when SROA splits up an alloca and the resulting
allocas cannot be lowered to SSA values because their address is passed
to a function.
Fixes PR22502.
llvm-svn: 228764
Adrian Prantl [Tue, 10 Feb 2015 23:18:15 +0000 (23:18 +0000)]
Fix indentation.
llvm-svn: 228763
Enrico Granata [Tue, 10 Feb 2015 23:17:07 +0000 (23:17 +0000)]
Fix a couple typos in the previous commit
llvm-svn: 228762
David Majnemer [Tue, 10 Feb 2015 23:11:02 +0000 (23:11 +0000)]
EarlyCSE: Add check lines for test added in r228760
llvm-svn: 228761
David Majnemer [Tue, 10 Feb 2015 23:09:43 +0000 (23:09 +0000)]
EarlyCSE: It isn't safe to CSE across synchronization boundaries
This fixes PR22514.
llvm-svn: 228760
Enrico Granata [Tue, 10 Feb 2015 23:02:25 +0000 (23:02 +0000)]
Add an LLDB summary for CMTime. Fixes rdar://
15370376
llvm-svn: 228759
Zachary Turner [Tue, 10 Feb 2015 22:56:21 +0000 (22:56 +0000)]
Add missing function and header include.
llvm-svn: 228758
Oleksiy Vyalov [Tue, 10 Feb 2015 22:49:57 +0000 (22:49 +0000)]
Extract attach core logic from SBTarget::Attach* methods into unified SBTarget::AttachToProcess and make it work with platform for remote attach purposes.
http://reviews.llvm.org/D7471
llvm-svn: 228757
Zachary Turner [Tue, 10 Feb 2015 22:47:14 +0000 (22:47 +0000)]
Oops. Don't call Windows functions on non-windows.
llvm-svn: 228756
Zachary Turner [Tue, 10 Feb 2015 22:43:25 +0000 (22:43 +0000)]
Rewrite llvm-pdbdump in terms of LLVMDebugInfoPDB.
This makes llvm-pdbdump available on all platforms, although it
will currently fail to create a dumper if there is no PDB reader
implementation for the current platform.
It implements dumping of compilands and children, which is less
information than was previously available, but it has to be
rewritten from scratch using the new set of interfaces, so the
rest of the functionality will be added back in subsequent commits.
llvm-svn: 228755
David Majnemer [Tue, 10 Feb 2015 22:00:34 +0000 (22:00 +0000)]
X86: @llvm.frameaddress should defer to SelectionDAG for Win CFI
llvm-svn: 228754
Rui Ueyama [Tue, 10 Feb 2015 21:40:51 +0000 (21:40 +0000)]
GNU: Rename parseZOption because it actually parses only -z max-page-size.
llvm-svn: 228753
Zachary Turner [Tue, 10 Feb 2015 21:40:29 +0000 (21:40 +0000)]
Fix build due to mismatched function signatures.
llvm-svn: 228752
Simon Atanasyan [Tue, 10 Feb 2015 21:38:25 +0000 (21:38 +0000)]
[Object] Reformat the code with clang-format
No functional changes.
llvm-svn: 228751
Rui Ueyama [Tue, 10 Feb 2015 21:28:52 +0000 (21:28 +0000)]
Unittest: Do s/_context/_ctx/g.
llvm-svn: 228750
Rui Ueyama [Tue, 10 Feb 2015 21:27:31 +0000 (21:27 +0000)]
GNU: Add --no-export-dynamic command line option.
llvm-svn: 228749
David Majnemer [Tue, 10 Feb 2015 21:22:05 +0000 (21:22 +0000)]
X86: Make @llvm.frameaddress work correctly with Windows unwind codes
Simply loading or storing the frame pointer is not sufficient for
Windows targets. Instead, create a synthetic frame object that we will
lower later. References to this synthetic object will be replaced with
the correct reference to the frame address.
llvm-svn: 228748
Zachary Turner [Tue, 10 Feb 2015 21:17:52 +0000 (21:17 +0000)]
Provide DIA implementation of DebugInfoPDB.
This implements DebugInfoPDB when the DIA SDK is present on the system.
Specifically, this means that the following conditions are met:
1) You are building on Windows.
2) You are building with MSVC.
3) Visual Studio did not corrupt the installation of DIA due to a
known issue with side-by-side installations of VS2012 and VS2013.
If all of these conditions are true, you will be able to pass a value
of PDB_Reader::DIA to PDB::createPdbReader().
There are no tests for this yet, as any test will be in the form of a
lit test which tests the llvm-pdbdump.exe, which still needs to be
rewritten in terms of this library.
llvm-svn: 228747
Eric Christopher [Tue, 10 Feb 2015 21:15:06 +0000 (21:15 +0000)]
Reformat (and remove some tabs) to make debugging this code a
little easier to step through.
llvm-svn: 228746
Aaron Ballman [Tue, 10 Feb 2015 21:13:04 +0000 (21:13 +0000)]
Now use the __debugbreak intrinsic instead of calling RaiseException; it requires no forward declares and still calls VEH.
llvm-svn: 228745
Vince Harron [Tue, 10 Feb 2015 21:09:04 +0000 (21:09 +0000)]
Fix 'process launch -i' for remote processes
We want to forward stdin when stdio is not disabled and when we're not
redirecting stdin from a file.
renamed m_stdio_disable to m_stdin_forward and inverted value because
that's what we want to remember.
There was previously a bug that if you redirected stdin from a file,
stdout and stderr would also be redirected to /dev/null
Adds support for remote target to TestProcessIO.py
Fixes ProcessIOTestCase.test_stdin_redirection_with_dwarf for remote
Linux targets
llvm-svn: 228744
Rui Ueyama [Tue, 10 Feb 2015 20:57:43 +0000 (20:57 +0000)]
Driver: move non-positional parameters out of switch. NFC.
llvm-svn: 228743
Daniel Jasper [Tue, 10 Feb 2015 20:49:05 +0000 (20:49 +0000)]
Fix overly prescriptive test that broken on Mac after r228725.
llvm-svn: 228742
Nico Weber [Tue, 10 Feb 2015 20:43:54 +0000 (20:43 +0000)]
fix docs typo
llvm-svn: 228741
Kuba Brecka [Tue, 10 Feb 2015 20:37:57 +0000 (20:37 +0000)]
Fix ASan's Noinst unit tests
We currently skip all "Noinst" unit tests on OS X, which was probably caused when we removed the "allow_reexec" flag. The MaybeReexec function fails to re-execute when the runtime is linked statically, because there is no dylib to use. This patch adds an explicit DisableReexec function that is used from asan_noinst_test.cc and the runtime then doesn't try to re-execute.
Reviewed at http://reviews.llvm.org/D7493
llvm-svn: 228740
Bill Schmidt [Tue, 10 Feb 2015 20:36:08 +0000 (20:36 +0000)]
[PowerPC] Remove the --no-tls-optimize workaround from the clang driver
llvm-svn: 228739
Aaron Ballman [Tue, 10 Feb 2015 20:13:52 +0000 (20:13 +0000)]
Changing the status code generated by LLVM_BUILTIN_TRAP on Windows to be something categorized as a valid error code. Fixes crashing uses (such as not --crash) with existing sys::Wait behavior.
llvm-svn: 228738
Anton Yartsev [Tue, 10 Feb 2015 20:13:08 +0000 (20:13 +0000)]
[analyzer] Pass actual state to alloc/dealloc handling functions.
The state obtained from CheckerContext::getState() may be outdated by the time the alloc/dealloc handling function is called (e.g. the state was modified but the transition was not performed). State argument was added to all alloc/dealloc handling functions in order to get the latest state and to allow sequential calls to those functions.
llvm-svn: 228737
Andrey Churbanov [Tue, 10 Feb 2015 20:10:21 +0000 (20:10 +0000)]
Fixed memory corruption problem.
llvm-svn: 228736
Pete Cooper [Tue, 10 Feb 2015 19:53:38 +0000 (19:53 +0000)]
Check for backtraces in tests which are verifying pretty stack traces from a crashing clang.
PrettyStackTrace now requires the ENABLE_BACKTRACES option. We need to check for that here or these tests fail llvm-lit.
Reviewed by chandlerc
llvm-svn: 228735
Andrey Churbanov [Tue, 10 Feb 2015 19:53:13 +0000 (19:53 +0000)]
Updated the kmp_omp_struct_info_t structure used by debuggers.
llvm-svn: 228734
Andrew Kaylor [Tue, 10 Feb 2015 19:52:43 +0000 (19:52 +0000)]
Adding support for llvm.eh.begincatch and llvm.eh.endcatch intrinsics and beginning the documentation of native Windows exception handling.
Differential Revision: http://reviews.llvm.org/D7398
llvm-svn: 228733
Alexey Samsonov [Tue, 10 Feb 2015 19:50:20 +0000 (19:50 +0000)]
[UBSan] Reduce the number of getCallerLocation() calls.
getCallerLocation() is expensive as it issues a call to symbolizer.
(In fact, this function has a memory leak at the moment, but this
will be fixed in the nearest future). We should only call it if
we're actually going to print an error report, in particular,
once for every reported source location.
__ubsan_handle_type_mismatch: call getCallerLocation() only if
provided source location is invalid, and only if the report is not
deduplicated.
__ubsan_handle_float_cast_overflow: call getSourceLocation with
correct CallerPC (the one in user code, not in UBSan handler). Source
location for this check is not currently emitted by frontend.
llvm-svn: 228732
Tim Northover [Tue, 10 Feb 2015 19:49:18 +0000 (19:49 +0000)]
DeadArgElim: arguments affect all returned sub-values by default.
Unless we meet an insertvalue on a path from some value to a return, that value
will be live if *any* of the return's components are live, so all of those
components must be added to the MaybeLiveUses.
Previously we were deleting arguments if sub-value 0 turned out to be dead.
llvm-svn: 228731
Andrey Churbanov [Tue, 10 Feb 2015 19:47:09 +0000 (19:47 +0000)]
OpenMP 4.0 standard function omp_is_initial_device() implemented.
llvm-svn: 228730
Greg Clayton [Tue, 10 Feb 2015 19:43:15 +0000 (19:43 +0000)]
Don't crash when evaluating a DWARF expression has a DW_OP_bra with nothing on the value stack.
<rdar://problem/
18919125>
llvm-svn: 228729
Bill Schmidt [Tue, 10 Feb 2015 19:31:55 +0000 (19:31 +0000)]
Fix up r228725, missed change in PPCSubtarget definition
llvm-svn: 228728
Andrey Churbanov [Tue, 10 Feb 2015 19:31:17 +0000 (19:31 +0000)]
Added comment on format of local labels in asm code
llvm-svn: 228727
Duncan P. N. Exon Smith [Tue, 10 Feb 2015 19:13:46 +0000 (19:13 +0000)]
IR: Add MDNode::replaceWithPermanent()
Add new API for converting temporaries that may self-reference.
Self-referencing nodes are not allowed to be uniqued, so sending them
into `replaceWithUniqued()` is dangerous (and this commit adds
assertions that prevent it).
`replaceWithPermanent()` has similar semantics to `get()` followed by
calls to `replaceOperandWith()`. In particular, if there's a
self-reference, it returns a distinct node; otherwise, it returns a
uniqued one. Like `replaceWithUniqued()` and `replaceWithDistinct()`
(well, it calls out to them) it mutates the temporary node in place if
possible, only calling `replaceAllUsesWith()` on a uniquing collision.
llvm-svn: 228726
Bill Schmidt [Tue, 10 Feb 2015 19:09:05 +0000 (19:09 +0000)]
[PowerPC] Fix reverted patch r227976 to avoid register assignment issues
See full discussion in http://reviews.llvm.org/D7491.
We now hide the add-immediate and call instructions together in a
separate pseudo-op, which is tagged to define GPR3 and clobber the
call-killed registers. The PPCTLSDynamicCall pass prior to RA now
expands this op into the two separate addi and call ops, with explicit
definitions of GPR3 on both instructions, and explicit clobbers on the
call instruction. The pass is now marked as requiring and preserving
the LiveIntervals and SlotIndexes analyses, and fixes these up after
the replacement sequences are introduced.
Self-hosting has been verified on LE P8 and BE P7 with various
optimization levels, etc. It has also been verified with the
--no-tls-optimize flag workaround removed.
llvm-svn: 228725
David Majnemer [Tue, 10 Feb 2015 19:01:47 +0000 (19:01 +0000)]
X86: Emit Win64 SaveXMM opcodes at the right offset in the right order
Walk the instructions marked FrameSetup and consider any stores of XMM
registers to the stack as needing a SaveXMM opcode.
This fixes PR22521.
Differential Revision: http://reviews.llvm.org/D7527
llvm-svn: 228724
Rui Ueyama [Tue, 10 Feb 2015 18:59:37 +0000 (18:59 +0000)]
Use override rather than virtual.
llvm-svn: 228723
Rui Ueyama [Tue, 10 Feb 2015 18:55:39 +0000 (18:55 +0000)]
GNU: Use StringRef::empty instead of a boolean flag.
This local variable name did not follow the style guide,
and it is not actually needed.
llvm-svn: 228722
Andrey Churbanov [Tue, 10 Feb 2015 18:51:52 +0000 (18:51 +0000)]
Added CFI directives to asm code in order to have correct backtraces in gdb.
llvm-svn: 228721
Dan Albert [Tue, 10 Feb 2015 18:46:57 +0000 (18:46 +0000)]
Make ABI header not found a warning, not an error.
Since we've added a new header to libc++abi (__cxxabi_config.h), we
now have a case where we might not always find all the ABI headers:
building libc++ against the system's libc++abi on Darwin.
Since this isn't actually a fatal error, degrade it to a warning.
llvm-svn: 228720
Hal Finkel [Tue, 10 Feb 2015 18:45:02 +0000 (18:45 +0000)]
[PowerPC] Support the (old) cntlz instruction alias
Some old assembly code uses the cntlz alias for cntlzw, binutils supports this,
and we should too. Fixes PR22519.
llvm-svn: 228719
Andrey Churbanov [Tue, 10 Feb 2015 18:37:43 +0000 (18:37 +0000)]
The usage of tt_state flag is replaced by an array of two task_team pointers.
llvm-svn: 228718
Rui Ueyama [Tue, 10 Feb 2015 18:34:46 +0000 (18:34 +0000)]
Driver: use hasArg instead of getLastArg if return value is not used.
llvm-svn: 228717
Chaoren Lin [Tue, 10 Feb 2015 18:30:34 +0000 (18:30 +0000)]
Failsafe directory for shared objects and support executables.
llvm-svn: 228716
Chaoren Lin [Tue, 10 Feb 2015 18:30:31 +0000 (18:30 +0000)]
Adding x86 to supported architectures on x86_64.
llvm-svn: 228715
Hafiz Abid Qadeer [Tue, 10 Feb 2015 18:12:44 +0000 (18:12 +0000)]
Fix build on Windows which was broken by a recent commit.
This file MICmnStreamStdinLinux.cpp is wrongly added in the windows build.
It has no use there. CMakeList.txt for lldb-mi needs to be re-factored to
include the right file for each build. This is quick fix to un-break the build.
llvm-svn: 228714
Michael Zolotukhin [Tue, 10 Feb 2015 17:54:54 +0000 (17:54 +0000)]
Add a test case for new unrolling heuristics.
THe heuristics were added in r228265 and r228434.
llvm-svn: 228713
Eric Fiselier [Tue, 10 Feb 2015 17:32:49 +0000 (17:32 +0000)]
Add pragma system header to some experimental headers and add newlines to files.
llvm-svn: 228712
Eric Fiselier [Tue, 10 Feb 2015 17:20:18 +0000 (17:20 +0000)]
Fix more issues exposed by -pedantic-errors in c++03 mode
llvm-svn: 228711
Sylvestre Ledru [Tue, 10 Feb 2015 17:16:13 +0000 (17:16 +0000)]
Fix the LLDB build under Debian Kfreebsd
Summary:
I don't know if there is a better way for the change in source/Host/freebsd/ThisThread.cpp
Reviewers: emaste
Subscribers: hansw, emaste, lldb-commits
Differential Revision: http://reviews.llvm.org/D7441
llvm-svn: 228710
Hafiz Abid Qadeer [Tue, 10 Feb 2015 17:10:39 +0000 (17:10 +0000)]
Fix multiple problems of lldb-mi blocking on input monitoring and needing a return.
Summary:
One of the problem is reported here.
http://llvm.org/bugs/show_bug.cgi?id=22411
A fix was committed for this problem that works only for OSX. This revision
extends that fix to other system. The select system call has some limitation with
multi-threaded application which have been addresses here.
LLDB-mi exits if quit command is given but needs an extra retur if -gdb-exit is
given. That issue has also been addressed.
Reviewers: ki.stfu, emaste
Reviewed By: ki.stfu
Subscribers: lldb-commits
Differential Revision: http://reviews.llvm.org/D7529
llvm-svn: 228709
Colin LeMahieu [Tue, 10 Feb 2015 16:59:36 +0000 (16:59 +0000)]
[Hexagon] Adding vector load with post-increment instructions. Adding decoder function for 64bit control register class.
llvm-svn: 228708
Greg Clayton [Tue, 10 Feb 2015 16:53:40 +0000 (16:53 +0000)]
Fixed a problem where we might omit some breakpoints when using DWARF in .o files.
The problem occurred when we had incorrect address ranges in the debug map that included the padding between functions causing the end address of a line table entry to fall into an inlinked (next function) address range.
<rdar://problem/
19721144>
llvm-svn: 228707
Eric Fiselier [Tue, 10 Feb 2015 16:51:29 +0000 (16:51 +0000)]
Remove use of zero length arrays in tests. Get tests passing with -pedantic-errors
llvm-svn: 228706
Eric Fiselier [Tue, 10 Feb 2015 16:48:45 +0000 (16:48 +0000)]
[libcxx] Fix PR 22468 - std::function<void()> does not accept non-void-returning functions
Summary:
The bug can be found here: http://llvm.org/bugs/show_bug.cgi?id=22468
`__invoke_void_return_wrapper` is needed to properly handle calling a function that returns a value but where the std::function return type is void. Without this '-Wsystem-headers' will cause `function::operator()(...)` to not compile.
Reviewers: eugenis, K-ballo, mclow.lists
Reviewed By: mclow.lists
Subscribers: cfe-commits
Differential Revision: http://reviews.llvm.org/D7444
llvm-svn: 228705
Eric Fiselier [Tue, 10 Feb 2015 16:46:42 +0000 (16:46 +0000)]
[libcxx] Properly convert the count arguments to the *_n algorithms before use.
Summary:
The requirement on the `Size` type passed to *_n algorithms is that it is convertible to an integral type. This means we can't use a variable of type `Size` directly. Instead we need to convert it to an integral type first. The problem is finding out what integral type to convert it to. `__convert_to_integral` figures out what integral type to convert it to and performs the conversion, It also promotes the resulting integral type so that it is at least as big as an integer. `__convert_to_integral` also has a special case for converting enums. This should only work on non-scoped enumerations because it does not apply an explicit conversion from the enum to its underlying type.
Reviewers: chandlerc, mclow.lists
Reviewed By: mclow.lists
Subscribers: cfe-commits
Differential Revision: http://reviews.llvm.org/D7449
llvm-svn: 228704
Zoran Jovanovic [Tue, 10 Feb 2015 16:36:20 +0000 (16:36 +0000)]
[mips][microMIPS] Implement movep instruction
Differential Revision: http://reviews.llvm.org/D7465
llvm-svn: 228703
Timur Iskhodzhanov [Tue, 10 Feb 2015 16:29:05 +0000 (16:29 +0000)]
[ASan/Win] NFC, just minor simplification of the code
llvm-svn: 228702
Timur Iskhodzhanov [Tue, 10 Feb 2015 16:17:01 +0000 (16:17 +0000)]
[ASan/Win] Add the executable's directory to the symbol search path
This should fix symbolization in those cases when the .exe file is moved together with the .pdb
llvm-svn: 228701