- Mar 14, 2013
-
-
Craig Topper authored
llvm-svn: 177015
-
Craig Topper authored
Fix a bug in the calculation of the VEX.B bit for FMA4 rr with the VEX.W bit set. The VEX.B was being calculated from the wrong operand. Fixes at least some portion of PR14185. llvm-svn: 177014
-
Craig Topper authored
Teach X86 MC instruction lowering that VMOVAPSrr and other VEX-encoded register to register moves should be switched from using the MRMSrcReg form to the MRMDestReg form if the source register is a 64-bit extended register and the destination register is not. This allows the instruction to be encoded using the 2-byte VEX form instead of the 3-byte VEX form. The GNU assembler has similar behavior. llvm-svn: 177011
-
Michael Liao authored
- Fix the typo on type checking llvm-svn: 177010
-
Nick Lewycky authored
llvm-svn: 177005
-
Nick Lewycky authored
constructs default arguments. It can now take default arguments from cl::opt'ions. Add a new -default-gcov-version=... option, and actually test it! Sink the reverse-order of the version into GCOVProfiling, hiding it from our users. llvm-svn: 177002
-
Michael J. Spencer authored
Clients of MemoryBuffer::getOpenFile expect it not to take ownership of the file descriptor passed in. So don't. llvm-svn: 176995
-
- Mar 13, 2013
-
-
Nick Lewycky authored
emitProfileNotes(), similar to emitProfileArcs(). Also update its comment. Also add a comment on Version[4] (there will be another comment in clang later), and compress lines that exceeded 80 columns. llvm-svn: 176994
-
Bill Wendling authored
This doesn't reset all of the target options within the TargetOptions object. This is because some of those are ABI-specific and must be determined if it's okay to change those on the fly. llvm-svn: 176986
-
David Blaikie authored
llvm-svn: 176983
-
Reed Kotler authored
up putback to clang for mips16. llvm-svn: 176968
-
Vincent Lejeune authored
llvm-svn: 176967
-
Manman Ren authored
llvm-svn: 176963
-
Manman Ren authored
llvm-svn: 176962
-
Jakob Stoklund Olesen authored
We have the same assertion in createVirtualRegister. llvm-svn: 176959
-
Arnaud A. de Grandmaison authored
Only combine when the shl is only used by the icmp llvm-svn: 176950
-
Benjamin Kramer authored
sigh. llvm-svn: 176946
-
Akira Hatanaka authored
mips16 and MipsSETargetLowering is for mips32/64. No functionality changes. llvm-svn: 176917
-
David Blaikie authored
This is the next step towards making the metadata for DIScopes have a common prefix rather than having to delegate based on their tag type. llvm-svn: 176913
-
Matt Beaumont-Gay authored
This was tickled by a Clang diagnostic; Clang test case to follow. llvm-svn: 176911
-
- Mar 12, 2013
-
-
David Blaikie authored
llvm-svn: 176910
-
Michael J. Spencer authored
Patch by Paul Robinson. llvm-svn: 176908
-
David Blaikie authored
This could be 'null' or the empty string, DIDescriptor::getStringField coalesces the two cases anyway so it's just a matter of legible/efficient representation. The change in behavior of the DICompileUnit::get* functions could be subsumed by the full verification check - but ideally that should just be an assertion if we could front-load the actual debug info metadata failure paths. llvm-svn: 176907
-
Arnold Schwaighofer authored
Increase the cost of v8/v16-i8 to v8/v16-i32 casts and truncates as the backend currently lowers those using stack accesses. This was responsible for a significant degradation on MultiSource/Benchmarks/Trimaran/enc-pc1/enc-pc1 where we vectorize one loop to a vector factor of 16. After this patch we select a vector factor of 4 which will generate reasonable code. unsigned char cle[32]; void test(short c) { unsigned short compte; for (compte = 0; compte <= 31; compte++) { cle[compte] = cle[compte] ^ c; } } radar://13220512 llvm-svn: 176898
-
Manman Ren authored
llvm-svn: 176893
-
Michael J. Spencer authored
This gives us memory mapped file I/O on Windows. llvm-svn: 176886
-
Manman Ren authored
belongs to a different compile unit. DW_FORM_ref_addr should be used for cross compile-unit reference. When compiling a large application, we got a dwarfdump verification error where abstract_origin points to nowhere. This error can't be reproduced on any testing case in MultiSource. We may have other cases where we use DW_FORM_ref4 unconditionally. rdar://problem/13370501 llvm-svn: 176882
-
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
-
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
-
Dan Gohman authored
that they're more consistent with Value::replaceAllUsesWith. llvm-svn: 176872
-
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
-
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
-
Patrik Hagglund authored
This seems to be a "copy-paste error" introducecd in r156140. llvm-svn: 176863
-
Akira Hatanaka authored
Delete commented-out code. llvm-svn: 176844
-
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
-
David Blaikie authored
llvm-svn: 176837
-
- Mar 11, 2013
-
-
Nick Lewycky authored
lower an expect intrinsic that is a constant expression. llvm-svn: 176830
-
Kevin Enderby authored
rdar://13318048 llvm-svn: 176828
-