- Sep 15, 2013
-
-
David Majnemer authored
Summary: The '?' flag uses the last section group if the last had a section group. We treat combining an explicit section group and the '?' as a hard error. This fixes PR17198. Reviewers: rafael, bkramer Reviewed By: bkramer CC: llvm-commits Differential Revision: http://llvm-reviews.chandlerc.com/D1686 llvm-svn: 190768
-
Kai Nacke authored
For alignment purposes, the instruction array will always have an even number of entries, with the final entry potentially unused (in which case the array will be one longer than indicated by the count of unwind codes field). Reviewed by Anton Korobeynikov, Charles Davis and Nico Rieck. llvm-svn: 190767
-
Kai Nacke authored
data structures. The Win64 EH data structures must be of type IMAGE_REL_AMD64_ADDR32NB instead of IMAGE_REL_AMD64_ADDR32. This is easiely achieved by adding the VK_COFF_IMGREL32 modifier to the symbol reference. Change also references to start and end of the SEH range of a function as offsets to start of the function. Reviewed by Jim Grosbach, Charles Davis and Nico Rieck. llvm-svn: 190766
-
Hal Finkel authored
This is causing test-suite failures. Original commit message: The PPC backend uses a target-specific DAG combine to turn unaligned Altivec loads into a permutation-based sequence when possible. Unfortunately, the target-specific DAG combine is not always called on all loads of interest (sometimes the routines in DAGCombine call CombineTo such that the new node and users are not added to the worklist); allowing the combine to trigger early (before type legalization) mitigates this problem. Because the autovectorizers only create legal vector types, I don't expect a lot of cases where this optimization is enabled by type legalization in practice. llvm-svn: 190765
-
Hal Finkel authored
The PPC backend uses a target-specific DAG combine to turn unaligned Altivec loads into a permutation-based sequence when possible. Unfortunately, the target-specific DAG combine is not always called on all loads of interest (sometimes the routines in DAGCombine call CombineTo such that the new node and users are not added to the worklist); allowing the combine to trigger early (before type legalization) mitigates this problem. Because the autovectorizers only create legal vector types, I don't expect a lot of cases where this optimization is enabled by type legalization in practice. llvm-svn: 190764
-
Hal Finkel authored
DAGCombiner::isAlias can be called with SrcValue1 or SrcValue2 null, and we can't use AA in this case (if we try, then the casting code in AA will assert). llvm-svn: 190763
-
Reed Kotler authored
so it can be better used for general interoperability testing between mips32 and mips16. llvm-svn: 190762
-
Benjamin Kramer authored
llvm-svn: 190759
-
- Sep 14, 2013
-
-
Ben Langmuir authored
Also assembly/disassembly tests, and for sha256rnds2, aliases with an explicit xmm0 dependency. llvm-svn: 190754
-
Robert Wilhelm authored
llvm-svn: 190750
-
Robert Wilhelm authored
llvm-svn: 190749
-
Chandler Carruth authored
This pass was based on the previous (essentially unused) profiling infrastructure and the assumption that by ordering the basic blocks at the IR level in a particular way, the correct layout would happen in the end. This sometimes worked, and mostly didn't. It also was a really naive implementation of the classical paper that dates from when branch predictors were primarily directional and when loop structure wasn't commonly available. It also didn't factor into the equation non-fallthrough branches and other machine level details. Anyways, for all of these reasons and more, I wrote MachineBlockPlacement, which completely supercedes this pass. It both uses modern profile information infrastructure, and actually works. =] llvm-svn: 190748
-
Zoran Jovanovic authored
llvm-svn: 190746
-
Zoran Jovanovic authored
llvm-svn: 190745
-
Zoran Jovanovic authored
llvm-svn: 190744
-
Matt Arsenault authored
llvm-svn: 190740
-
Matt Arsenault authored
This case wasn't checked with a pointer condition. llvm-svn: 190739
-
Daniel Dunbar authored
llvm-svn: 190738
-
Filip Pizlo authored
This was somewhat tricky because ~PrettyStackTraceEntry() may run after llvm_shutdown() has been called. This is rare and only happens for a common idiom used in the main() functions of command-line tools. This works around the idiom by skipping the stack clean-up if the PrettyStackTraceHead ManagedStatic is not constructed (i.e. llvm_shutdown() has been called). llvm-svn: 190730
-
- Sep 13, 2013
-
-
Hal Finkel authored
As it turns out, not a problem in practice, but it should be there. llvm-svn: 190720
-
Preston Gurd authored
Implements Instruction scheduler latencies for Silvermont, using latencies from the Intel Silvermont Optimization Guide. Auto detects SLM. Turns on post RA scheduler when generating code for SLM. llvm-svn: 190717
-
Quentin Colombet authored
By definition copies across register banks are not coalescable. Still, it may be possible to get rid of such a copy when the value is available in another register of the same register file. Consider the following example, where capital and lower letters denote different register file: b = copy A <-- cross-bank copy ... C = copy b <-- cross-bank copy This could have been optimized this way: b = copy A <-- cross-bank copy ... C = copy A <-- same-bank copy Note: b and C's definitions may be in different basic blocks. This patch adds a peephole optimization that looks through a chain of copies leading to a cross-bank copy and reuses a source that is on the same register file if available. This solution could also be used to get rid of some copies (e.g., A could have been used instead of C). However, we do not do so because: - It may over constrain the coloring of the source register for coalescing. - The register allocator may not be able to find a nice split point for the longer live-range, leading to more spill. <rdar://problem/14742333> llvm-svn: 190713
-
Benjamin Kramer authored
empty() doesn't actually empty out the container, making this a common typo. llvm-svn: 190708
-
Nuno Lopes authored
llvm-svn: 190696
-
Amaury de la Vieuville authored
Patch by Bradley Smith llvm-svn: 190694
-
Joey Gouly authored
to be more consistent. llvm-svn: 190692
-
Evgeniy Stepanov authored
Compiler part. llvm-svn: 190689
-
Daniel Sanders authored
svn 1.8.0 emits an additional line matching 'URL:' in its 'svn info' command ('Relative URL:'). Changed the grep to match only the intended line so that a valid SVNVersion.inc is generated. The problem doesnt occur with the svn version I'm using (1.7.5) but Tobias has confirmed that the change fixes the problem. See http://llvm.org/bugs/show_bug.cgi?id=17203 llvm-svn: 190685
-
Joey Gouly authored
Patch by Bradley Smith! llvm-svn: 190683
-
Amaury de la Vieuville authored
Patch by Artyom Skrobov! llvm-svn: 190679
-
Patrik Hagglund authored
Since r187209, which modified ltdl.m4, I was unable to execute AutoRegen.sh, getting: ../configure:10779: error: possibly undefined macro: AC_LTDL_FUNC_ARGZ This commit re-adds AC_LTDL_FUNC_ARGZ to ltdl.m4, as a quick fix. For me, this corresponds to the configure file currently checked in. (However, the ltdl library seems to be unused since r74924 in 2009, except for the use of the LTDL_SHLIB_EXT macro in bugpoint(?). Therefore, the right solution seems to try to get rid of the local ltdl.m4 file, specified by autoconf/README.TXT.) llvm-svn: 190677
-
Zoran Jovanovic authored
llvm-svn: 190676
-
Richard Sandiford authored
Just a clean-up, no behavioral change intended. llvm-svn: 190673
-
Richard Sandiford authored
E.g. "SRL %r2, 2; TMLL %r2, 1" => "TMLL %r2, 4". llvm-svn: 190672
-
Duncan Sands authored
disabled. llvm-svn: 190668
-
Tim Northover authored
Previously we modelled VPR128 and VPR64 as essentially identical register-classes containing V0-V31 (which had Q0-Q31 as "sub_alias" sub-registers). This model is starting to cause significant problems for code generation, particularly writing EXTRACT/INSERT_SUBREG patterns for converting between the two. The change here switches to classifying VPR64 & VPR128 as RegisterOperands, which are essentially aliases for RegisterClasses with different parsing and printing behaviour. This fits almost exactly with their real status (VPR128 == FPR128 printed strangely, VPR64 == FPR64 printed strangely). llvm-svn: 190665
-
Craig Topper authored
llvm-svn: 190659
-
Eric Christopher authored
versions of gold. This support is designed to allow gold to produce gdb_index sections similar to the accelerator tables and consumable by gdb. llvm-svn: 190649
-
Eric Christopher authored
llvm-svn: 190648
-
Vincent Lejeune authored
llvm-svn: 190645
-