- Sep 16, 2013
-
-
Benjamin Kramer authored
llvm-svn: 190779
-
Daniel Sanders authored
Summary: When a git repository had multiple remotes, ${repository} will be set to a multiline string. This causes compilation errors in SVNVersion.inc. Fix this by limiting the output of utils/GetRepositoryPath to the first remote (which is reasonably likely to be 'origin'). Reviewers: jordan_rose CC: llvm-commits, t.p.northover Differential Revision: http://llvm-reviews.chandlerc.com/D1659 llvm-svn: 190778
-
Richard Sandiford authored
The port originally had special patterns for extload, mapping them to the same instructions as sextload. It seemed neater to have patterns that match "an extension that is allowed to be signed" and "an extension that is allowed to be unsigned". This was originally meant to be a clean-up, but it does improve the handling of promoted integers a little, as shown by args-06.ll. llvm-svn: 190777
-
Craig Topper authored
llvm-svn: 190775
-
Peter Collingbourne authored
Previous discussion: http://lists.cs.uiuc.edu/pipermail/llvmdev/2013-July/063909.html Differential Revision: http://llvm-reviews.chandlerc.com/D1191 llvm-svn: 190773
-
Hal Finkel authored
This is a re-commit of r190764, with an extra check to make sure that we're not performing the transformation on illegal types (a small test case has been added for this as well). 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: 190771
-
Benjamin Kramer authored
llvm-svn: 190770
-
- Sep 15, 2013
-
-
Benjamin Kramer authored
llvm-svn: 190769
-
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
-