- Mar 31, 2015
-
-
Kostya Serebryany authored
llvm-svn: 233763
-
Zachary Turner authored
llvm-svn: 233762
-
Sanjay Patel authored
llvm-svn: 233761
-
Duncan P. N. Exon Smith authored
replaceWithUniquedUnresolved replaceWithUniquedUnresolvedChangedOperand => replaceWithUniquedResolvingOperand replaceWithUniquedChangingOperand I find the new names less confusing; they're also more accurate. Sorry for the churn. llvm-svn: 233759
-
Zachary Turner authored
In an effort to reduce binary size for components not wishing to link against all of LLDB, as well as a parallel effort to reduce link dependencies on Python, this patch splits out the notion of LLDB initialization into "full" and "common" initialization. All code related to initializing the full LLDB suite lives directly in API now. Previously it was only referenced from API, but because it was defined in lldbCore, it would get implicitly linked against by everything including lldb-server, causing a considerable increase in binary size. By moving this to the API layer, it also creates a better layering for the ongoing effort to make the embedded interpreter replacable with one from a different language (or even be completely removeable). One semantic change necessary to get this all working was to remove the notion of a shared debugger refcount. The debugger is either initialized or uninitialized now, and calling Initialize() multiple times will simply have no effect, while the first Terminate() will now shut it down no matter how many times Initialize() was called. This behaves nicely with all of our supported usage patterns though, and allows us to fix a number of nasty hacks from before. Differential Revision: http://reviews.llvm.org/D8462 llvm-svn: 233758
-
Greg Clayton authored
I am fixing this by: 1 - make sure we aren't trying to set the symbol file for a module to the same thing it already has and leaving it alone if it is the same 2 - keep all old symbol files around in the module in case there are any outstanding type references <rdar://problem/18029116> llvm-svn: 233757
-
Duncan P. N. Exon Smith authored
r233664 fixed the `Verifier` so that it doesn't crash on bad type refs. This deserves a test! llvm-svn: 233756
-
Hal Finkel authored
Even at -O0, we fall back to SDAG when we hit intrinsics, and if the intrinsic is a memset/memcpy/etc. we might normally use vector types. At -O0, this is probably not a good idea (because, if there is a bug in the lowering code, there would be no good way to turn it off). At -O0, only use scalar preferred types. Related to PR22754. llvm-svn: 233755
-
Greg Clayton authored
llvm-svn: 233754
-
Quentin Colombet authored
extended loads. Implement the related target lowering hook so that the optimization has a better estimation of the cost of an extension. rdar://problem/19267165 llvm-svn: 233753
-
Matthias Braun authored
llvm-svn: 233752
-
Duncan P. N. Exon Smith authored
Uniqued nodes have more complete registration with `ReplaceableMetadataImpl` so that they can update themselves when operands change. Fix a bug where `MDNode::replaceWithUniqued()` wasn't enabling these callbacks. The two most obvious ways missing callbacks causes problems is that auto-resolution fails and re-uniquing (on changed operands) just doesn't happen. I've added tests for both -- in both cases, I confirmed that the final check was failing before the fix. rdar://problem/20365935 llvm-svn: 233751
-
Lang Hames authored
Commit r233747 fixed the issue that had been blocking this. llvm-svn: 233750
-
Hal Finkel authored
The existing code in getMemsetValue only handled integer-preferred types when the fill value was not a constant. Make this more robust in two ways: 1. If the preferred type is a floating-point value, do the mul-splat trick on the corresponding integer type and then bitcast. 2. If the preferred type is a vector, do the mul-splat trick on one vector element, and then build a vector out of them. Fixes PR22754 (although, we should also turn off use of vector types at -O0). llvm-svn: 233749
-
Rui Ueyama authored
Only MIPS used that member function, and by removing the use of the function, I removed a static_cast. Seems like it's a win. llvm-svn: 233748
-
Lang Hames authored
This patch fixes MCJIT::addGlobalMapping by changing the implementation of the ExecutionEngineState class. The new implementation maintains a bidirectional mapping between symbol names (std::strings) and addresses (uint64_ts), rather than a mapping between Value*s and void*s. This has fix has been made for backwards compatibility, however the strongly preferred way to resolve unknown symbols is by writing a custom RuntimeDyld::SymbolResolver (formerly RTDyldMemoryManager) and overriding the findSymbol method. The addGlobalMapping method is a hangover from the legacy JIT (which has was removed in 3.6), and may be deprecated in a future release as part of a clean-up of the ExecutionEngine interface. Patch by Murat Bolat. Thanks Murat! llvm-svn: 233747
-
Rui Ueyama authored
At least in Mips we don't have a prefix for member variables. Repeating the architecture is verbose. llvm-svn: 233746
-
Kostya Serebryany authored
llvm-svn: 233745
-
Matthias Braun authored
llvm-svn: 233744
-
Matthias Braun authored
Specify an allocation order with a register class. This is used by register allocators with a greedy heuristic. This is usefull as it is sometimes beneficial to color more constrained classes first. Differential Revision: http://reviews.llvm.org/D8626 llvm-svn: 233743
-
Matthias Braun authored
When allocating live intervals in linear order and all of them are local to a single basic block you get an optimal coloring. This is also true if you reverse the order, but it is not true if you sort live ranges beginnings in reverse order, change to sort live range endings in reverse order. Take the following live ranges for example: |---| |--------| |----------| |-------| They get colored suboptimally with 3 registers if you sort the live range starting points in reverse order (but optimally with live range begins in order, or live range ends in reverse order). Apparently the previous strategy was intentional because of allocation time considerations. I am having a hard time replicating these effects, while I see substantial improvements in allocation quality with this change. No testcase as none of the (in tree) targets use reverse order mode. Differential Revision: http://reviews.llvm.org/D8625 llvm-svn: 233742
-
Rui Ueyama authored
Apparently they are copy-pastes. They need to be merged, or otherwise they will diverge needlessly as I did in r233723... llvm-svn: 233741
-
Simon Atanasyan authored
No functional changes. llvm-svn: 233740
-
Rui Ueyama authored
llvm-svn: 233739
-
Rui Ueyama authored
This change should have been done in r233737, but I made a mistake to not include into that. llvm-svn: 233738
-
Rui Ueyama authored
Identifiers starting with _[A-Z] is reserved for the language. User programs shouldn't use such identifiers. llvm-svn: 233737
-
Ulrich Weigand authored
Change lowerCTPOP to: - Gracefully handle a known-zero input value - Simplify computation of significant bit size Thanks to Jay Foad for the review! llvm-svn: 233736
-
Rui Ueyama authored
llvm-svn: 233735
-
Simon Atanasyan authored
No functional changes. llvm-svn: 233727
-
Benjamin Kramer authored
Lets us fuse some branches into bit tests downstream. NFC. llvm-svn: 233725
-
Sanjay Patel authored
This is a follow-on to r233704 and another partial fix for PR22685: https://llvm.org/bugs/show_bug.cgi?id=22685 llvm-svn: 233724
-
Rui Ueyama authored
llvm-svn: 233723
-
Lang Hames authored
These regression tests are supposed to test small code model support, but have been XFAIL'd because we don't have an in-tree memory manager that can guarantee a small-code-model compatible memory layout. Unfortunately, they can occasionally pass if they get lucky with memory allocation, causing unexpected passes on the bots. That's not very helpful. I'm going to remove these until we have the infrastructure (small-code-model compatible memory manager) to run them properly. llvm-svn: 233722
-
Rui Ueyama authored
llvm-svn: 233721
-
Alexey Samsonov authored
See https://code.google.com/p/address-sanitizer/issues/detail?id=385. llvm-svn: 233720
-
Rui Ueyama authored
FINDV4BITMASK macro is defined as a macro so that the macro body is inlined. We should use inlined functions instead of macros. llvm-svn: 233719
-
Rui Ueyama authored
Multiple inheritance is casually used here. Rewriting to not using multiple inheritance reduces the complexity of the code and also makes it shorter. llvm-svn: 233718
-
Vince Harron authored
Works with x86_64 inferior, fails w/i386 inferior - updated test to reflect llvm-svn: 233717
-
Vince Harron authored
Removed expectedFailureLinux from failures that I was unable to reproduce, updated and improved some other comments near XFAIL tests Differential Revision: http://reviews.llvm.org/D8676 llvm-svn: 233716
-
Eli Bendersky authored
Support for this target was added in LLVM r233575 and r233583 llvm-svn: 233715
-