- Mar 12, 2013
-
-
Richard Relph authored
llvm-svn: 176881
-
Kevin Enderby authored
return 0 to indicate failure to create the disassembler. A library routine should not assert and just let the caller handler the error. For example darwin's otool(1) will simply print an error if it ends up using a library that is not configured for a target it wants: % otool -tv ViewController.o ViewController.o: (__TEXT,__text) section can't create arm llvm disassembler This is much better than an abort which appears as a crash to the user or even the assert when using a Debug+Asserts built library: Assertion failed: (MAI && "Unable to create target asm info!"), function LLVMCreateDisasmCPU, file /Volumes/SandBox/llvm/lib/MC/MCDisassembler/Disassembler.cpp, line 47. radr://12539918 llvm-svn: 176880
-
Matt Kopec authored
llvm-svn: 176879
-
Fariborz Jahanian authored
llvm-svn: 176878
-
Pete Cooper authored
This pass is meant to be immutable, however it holds mutable state to cache StructLayouts. This method will allow the pass manager to clear the mutable state between runs. Note that unfortunately it is still necessary to have the destructor, even though it does the same thing as doFinalization. This is because most TargetMachines embed a DataLayout on which doFinalization isn't run as its never added to the pass manager. I also didn't think it was necessary to complication things with a deInit method for which doFinalization and ~DataLayout both call as there's only one field of mutable state. If we had more fields to finalize i'd have added this. llvm-svn: 176877
-
Ted Kremenek authored
Per comment from Benjamin Kramer, this isn't portable (yet). I'll come up with a better fix. llvm-svn: 176876
-
Rafael Espindola authored
extern "C" { void test5_f() { extern int test5_b; } } static float test5_b; This patch makes us report one for extern "C" { void test6_f() { extern int test6_b; } } extern "C" { static float test6_b; } Not because we think the declaration would be extern C, but because of the rule: An entity with C language linkage shall not be declared with the same name as an entity in global scope... We were just not looking past the extern "C" to see if the decl was in global scope. llvm-svn: 176875
-
Alexander Kornienko authored
Summary: Handle "&&" usage as rvalue reference, added tests and fixed incorrect tests that interfere with this feature. http://llvm.org/bugs/show_bug.cgi?id=15051 Reviewers: djasper Reviewed By: djasper CC: cfe-commits, klimek Differential Revision: http://llvm-reviews.chandlerc.com/D531 llvm-svn: 176874
-
Jan Wen Voung authored
llvm-svn: 176873
-
Dan Gohman authored
that they're more consistent with Value::replaceAllUsesWith. llvm-svn: 176872
-
Sean Silva authored
llvm-svn: 176871
-
Fariborz Jahanian authored
llvm-svn: 176870
-
Rafael Espindola authored
This fixes a crash in namespace { struct X {}; } extern "C" X test2_b; X test2_b before we would assign different linkages to each of the test2_b decls. llvm-svn: 176869
-
Hal Finkel authored
Now that only the register-scavenger version of the CR spilling code remains, we no longer need the Darwin R2 hack. Darwin can use R0 as a spare register in any case where the System V ABI uses it (R0 is special architecturally, and so is reserved under all common ABIs). A few test cases needed to be updated to reflect the register-allocation changes. llvm-svn: 176868
-
Rafael Espindola authored
Without this patch we produce an error for extern "C" { void f() { extern int b; } } extern "C" { extern float b; } but not for extern "C" { void f() { extern int b; } } extern "C" { float b; } llvm-svn: 176867
-
Rafael Espindola authored
namespace { struct X {}; } extern "C" { X b = X(); } llvm-svn: 176866
-
Hal Finkel authored
This removes the -disable-ppc[32|64]-regscavenger options; the code that uses the register scavenger has been working well (and has been the default) for some time, and we don't need options to enable the old (broken) CR spilling code. llvm-svn: 176865
-
Tobias Grosser authored
llvm-svn: 176864
-
Patrik Hagglund authored
This seems to be a "copy-paste error" introducecd in r156140. llvm-svn: 176863
-
Patrik Hagglund authored
segment limit. Now, as a complement, add a stack space limit. Otherwise, tests may grow undesirable large at inifinite recursion. (Seen at r176838, test/Assembler/2010-02-05-FunctionLocalMetadataBecomesNull.ll) llvm-svn: 176862
-
Daniel Jasper authored
Before: switch (x) { default : {} } After: switch (x) { default: {} } llvm-svn: 176861
-
Matthew Curtis authored
And mention removal of hexagonv2 and hexagonv3 support (r176859). llvm-svn: 176860
-
Matthew Curtis authored
Driver will now error when trying to compile for V2 or V3. Removal of V2 and V3 support will allow us to simplify the hexagon back-end. llvm-svn: 176859
-
Bill Wendling authored
llvm-svn: 176858
-
Kostya Serebryany authored
[asan] use 4Tb of address space for the asan allocator instead of 1Tb. This increases the memory available for a single size class from 16Gb to 64Gb. The total VM footprint becomes 20Tb llvm-svn: 176857
-
Tobias Grosser authored
This fixes issues caused by the following commit: r176733 | jvoung | 2013-03-08 17:56:31 -0500 Disable statistics on Release builds and move tests that depend on -stats. Reported by: Jack Howarth <howarth@bromo.med.uc.edu> llvm-svn: 176856
-
Kostya Serebryany authored
[sanitizer] use fewer size classes in the allocator to reduce the memory footprint. There is no all-size-fits-all constant here, but this change is positive or neutral on several large apps I've tested llvm-svn: 176855
-
Evgeniy Stepanov authored
llvm-svn: 176854
-
Kostya Serebryany authored
[sanitizer] simplify the allocator's SizeClassMap: do not require an extra template parameter, instead compute it in flight. No functionality change llvm-svn: 176853
-
Sean Silva authored
"This documentation" could be construed as the entire c-t-e docs (despite being under a doxygen heading; people read "locally" sometimes), which gives a bad impression. llvm-svn: 176849
-
Sean Silva authored
llvm-svn: 176848
-
John Thompson authored
Initial check in of Doug's modularize tool for checking header readiness for modules, plus some changes per review feedback: Removed system headers, changed to use stream output, added file name in message. llvm-svn: 176847
-
Jim Ingham authored
For file & line breakpoints, if there are subsets of contiguous line table entries for the specified line, set the breakpoint on the first one of each of the contiguous sub-sets of entries, and not all the others. llvm-svn: 176846
-
Jim Ingham authored
llvm-svn: 176845
-
Akira Hatanaka authored
Delete commented-out code. llvm-svn: 176844
-
Greg Clayton authored
Updated the register numbering base documentation for the "gcc", "dwarf", "container-regs" and "invalidate-regs" key/value responses to the "qRegisterInfo" packet. llvm-svn: 176843
-
Michael J. Spencer authored
This reduces the time spent in this function while linking ASTMatchersTests from %43 to %2.4 of total link time. llvm-svn: 176842
-
Sean Callanan authored
GDB-style linespecs. This command allows changing the PC without manually looking up the new address. llvm-svn: 176841
-
Meador Inge authored
Nadav reported a performance regression due to the work I did to merge the library call simplifier into instcombine [1]. The issue is that a new LibCallSimplifier object is being created whenever InstCombiner::runOnFunction is called. Every time a LibCallSimplifier object is used to optimize a call it creates a hash table to map from a function name to an object that optimizes functions of that name. For short-lived LibCallSimplifier instances this is quite inefficient. Especially for cases where no calls are actually simplified. This patch fixes the issue by dropping the hash table and implementing an explicit lookup function to correlate the function name to the object that optimizes functions of that name. This avoids the cost of always building and destroying the hash table in cases where the LibCallSimplifier object is short-lived and avoids the cost of building the table when no simplifications are actually preformed. On a benchmark containing 100,000 calls where none of them are simplified I noticed a 30% speedup. On a benchmark containing 100,000 calls where all of them are simplified I noticed an 8% speedup. [1] http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20130304/167639.html llvm-svn: 176840
-
David Blaikie authored
Versioned debug info support has been a burden to maintain & also compromised current debug info verification by causing test cases testing old debug info to remain rather than being updated to the latest. It also makes it hard to add or change the metadata schema by requiring various backwards-compatibility in the DI* hierarchy. So it's being removed in preparation for new changes to the schema to tidy up old/unnecessary fields and add new fields needed for new debug info (well, new to LLVM at least). The more surprising part of this is the changes to DI*::Verify - this became necessary due to the changes to AsmWriter. AsmWriter was relying on the version test to decide which bits of metadata were actually debug info when printing the comment annotations. Without the version information the tag numbers were too common & it would print debug info on random metadata that happened to start with an integer that matched a tag number. Instead this change makes the Verify functions more precise (just adding "number of operands" checks - not type checking those operands yet) & relies on that to decide which metadata is debug info metadata. llvm-svn: 176838
-