- Mar 30, 2012
-
-
Jakob Stoklund Olesen authored
Use an explicit comparator instead of the default. The sets are sorted, but not using the default comparator. Hopefully, this will unbreak the Linux builders. llvm-svn: 153772
-
Rafael Espindola authored
--enable-expensive-checks build. llvm-svn: 153771
-
Jakob Stoklund Olesen authored
TableGen emits lists of sub-registers, super-registers, and overlaps. Put them all in a single table and use a SequenceToOffsetTable to share suffixes. llvm-svn: 153761
-
Rafael Espindola authored
needed for correctness, but still doesn't clean up code that now unnecessary checks for reachability. llvm-svn: 153755
-
Danil Malyshev authored
1. The main works will made in the RuntimeDyLdImpl with uses the ObjectFile class. RuntimeDyLdMachO and RuntimeDyLdELF now only parses relocations and resolve it. This is allows to make improvements of the RuntimeDyLd more easily. In addition the support for COFF can be easily added. 2. Added ARM relocations to RuntimeDyLdELF. 3. Added support for stub functions for the ARM, allowing to do a long branch. 4. Added support for external functions that are not loaded from the object files, but can be loaded from external libraries. Now MCJIT can correctly execute the code containing the printf, putc, and etc. 5. The sections emitted instead functions, thanks Jim Grosbach. MemoryManager.startFunctionBody() and MemoryManager.endFunctionBody() have been removed. 6. MCJITMemoryManager.allocateDataSection() and MCJITMemoryManager. allocateCodeSection() used JMM->allocateSpace() instead of JMM->allocateCodeSection() and JMM->allocateDataSection(), because I got an error: "Cannot allocate an allocated block!" with object file contains more than one code or data sections. llvm-svn: 153754
-
Bill Wendling authored
llvm-svn: 153701
-
- Mar 29, 2012
-
-
Danil Malyshev authored
Added ExecutionEngine/MCJIT tests. llvm-svn: 153694
-
Eric Christopher authored
llvm-svn: 153691
-
Eric Christopher authored
http://llvm.org/docs/SourceLevelDebugging.html#objcproperty including type and DECL. Expand the metadata needed accordingly. rdar://11144023 llvm-svn: 153639
-
Jakob Stoklund Olesen authored
Some targets still mess up the liveness information, but that isn't verified after MRI->invalidateLiveness(). The verifier can still check other useful things like register classes and CFG, so it should be enabled after all passes. llvm-svn: 153615
-
Jim Grosbach authored
llvm-svn: 153609
-
- Mar 28, 2012
-
-
Danil Malyshev authored
llvm-svn: 153607
-
Chandler Carruth authored
blocks in the function cloner. This removes the last case of trivially dead code that I've been seeing in the wild getting inlined, analyzed, re-inlined, optimized, only to be deleted. Nukes a FIXME from the cleanup tests. llvm-svn: 153572
-
- Mar 27, 2012
-
-
Jakob Stoklund Olesen authored
Late optimization passes like branch folding and tail duplication can transform the machine code in a way that makes it expensive to keep the register liveness information up to date. There is a fuzzy line between register allocation and late scheduling where the liveness information degrades. The MRI::tracksLiveness() flag makes the line clear: While true, liveness information is accurate, and can be used for register scavenging. Once the flag is false, liveness information is not accurate, and can only be used as a hint. Late passes generally don't need the liveness information, but they will sometimes use the register scavenger to help update it. The scavenger enforces strict correctness, and we have to spend a lot of code to update register liveness that may never be used. llvm-svn: 153511
-
Lang Hames authored
llvm-svn: 153483
-
Bill Wendling authored
llvm-svn: 153479
-
- Mar 26, 2012
-
-
Eric Christopher authored
Patch by Ojab. llvm-svn: 153476
-
Craig Topper authored
llvm-svn: 153429
-
- Mar 25, 2012
-
-
Craig Topper authored
llvm-svn: 153414
-
Rafael Espindola authored
llvm-svn: 153400
-
- Mar 24, 2012
-
-
Rafael Espindola authored
llvm-svn: 153398
-
Chandler Carruth authored
bit simpler by handling a common case explicitly. Also, refactor the implementation to use a worklist based walk of the recursive users, rather than trying to use value handles to detect and recover from RAUWs during the recursive descent. This fixes a very subtle bug in the previous implementation where degenerate control flow structures could cause mutually recursive instructions (PHI nodes) to collapse in just such a way that From became equal to To after some amount of recursion. At that point, we hit the inf-loop that the assert at the top attempted to guard against. This problem is defined away when not using value handles in this manner. There are lots of comments claiming that the WeakVH will protect against just this sort of error, but they're not accurate about the actual implementation of WeakVHs, which do still track RAUWs. I don't have any test case for the bug this fixes because it requires running the recursive simplification on unreachable phi nodes. I've no way to either run this or easily write an input that triggers it. It was found when using instruction simplification inside the inliner when running over the nightly test-suite. llvm-svn: 153393
-
Rafael Espindola authored
metadata. llvm-svn: 153359
-
Kostya Serebryany authored
llvm-svn: 153353
-
Akira Hatanaka authored
entries in the relocation table before they are written out to the file. llvm-svn: 153345
-
- Mar 23, 2012
-
-
Owen Anderson authored
Make it feasible for clients using EngineBuilder to capture the TargetMachine that is created as part of selecting the appropriate target. This is necessary if the client wants to be able to mutate TargetOptions (for example, fast FP math mode) after the initial creation of the ExecutionEngine. llvm-svn: 153342
-
Benjamin Kramer authored
New code should use raw_ostream. llvm-svn: 153326
-
Eric Christopher authored
llvm-svn: 153307
-
Eric Christopher authored
the PassManager annoying and should be reimplemented as a decorator on top of existing passes (as should the timing data). llvm-svn: 153305
-
- Mar 22, 2012
-
-
Andrew Trick authored
Keep the public interface clean, even though LLVM proper does not currently use it. llvm-svn: 153263
-
Andrew Trick authored
llvm-svn: 153262
-
Chandler Carruth authored
(and hopefully on Windows). The bots have been down most of the day because of this, and it's not clear to me what all will be required to fix it. The commits started with r153205, then r153207, r153208, and r153221. The first commit seems to be the real culprit, but I couldn't revert a smaller number of patches. When resubmitting, r153207 and r153208 should be folded into r153205, they were simple build fixes. llvm-svn: 153241
-
Chris Lattner authored
llvm-svn: 153238
-
- Mar 21, 2012
-
-
Danil Malyshev authored
Added ExecutionEngine/MCJIT tests. llvm-svn: 153221
-
Jan Sjödin authored
llvm-svn: 153215
-
Danil Malyshev authored
llvm-svn: 153207
-
Danil Malyshev authored
Based on this discussion: http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20120305/138477.html 1. Declare a virtual function getPointerToNamedFunction() in JITMemoryManager 2. Move the implementation of getPointerToNamedFunction() form JIT/MCJIT to DefaultJITMemoryManager. llvm-svn: 153205
-
Gregory Szorc authored
Remaining "uncategorized" functions have been organized into their proper place in the hierarchy. Some functions were moved around so groups are defined together. No code changes were made. llvm-svn: 153169
-
Gregory Szorc authored
This gives a lot of love to the docs for the C API. Like Clang's documentation, the C API is now organized into a Doxygen "module" (LLVMC). Each C header file is a child of the main module. Some modules (like Core) have a hierarchy of there own. The produced documentation is thus better organized (before everything was in one monolithic list). This patch also includes a lot of new documentation for APIs in Core.h. It doesn't document them all, but is better than none. Function docs are missing @param and @return annotation, but the documentation body now commonly provides help details (like the expected llvm::Value sub-type to expect). llvm-svn: 153157
-
- Mar 20, 2012
-
-
Anna Zaks authored
ImmutAVLTree uses random unsigned values as keys into a DenseMap, which could possibly happen to be the same value as the Tombstone or Entry keys in the DenseMap. Test case is hard to come up with. We randomly get failures on the internal static analyzer bot, which most likely hits this issue (hard to be 100% sure without the full stack). llvm-svn: 153148
-