- Mar 26, 2014
-
-
Timur Iskhodzhanov authored
llvm-svn: 204795
-
Alexander Potapenko authored
llvm-svn: 204794
-
Daniel Sanders authored
llvm-svn: 204793
-
Daniel Sanders authored
[mips] Move the CHECK lines in mips*-register-names.s to make it more obvious which CHECK matches with which insn This reveals a small mistake in mips-register-names.s ($sp is tested twice and $s8 is not tested) which will be fixed in a follow-up commit. llvm-svn: 204792
-
Timur Iskhodzhanov authored
llvm-svn: 204791
-
Timur Iskhodzhanov authored
Fix PR19239 - Add support for generating debug info for functions without lexical scopes and/or debug info at all llvm-svn: 204790
-
Timur Iskhodzhanov authored
llvm-svn: 204788
-
Timur Iskhodzhanov authored
llvm-svn: 204787
-
Timur Iskhodzhanov authored
Reviewed at http://llvm-reviews.chandlerc.com/D3181 llvm-svn: 204786
-
Rafael Espindola authored
This reverts commit r204783. llvm-svn: 204785
-
Rafael Espindola authored
This reverts commit r204781. I will follow up to with msan folks to see what is what they were trying to do with aliases to weak aliases. llvm-svn: 204784
-
Rafael Espindola authored
llvm-svn: 204783
-
Hal Finkel authored
These instructions are essentially the same as their Altivec counterparts, but have access to the larger VSX register file. llvm-svn: 204782
-
Rafael Espindola authored
Aliases are just another name for a position in a file. As such, the regular symbol resolutions are not applied. For example, given define void @my_func() { ret void } @my_alias = alias weak void ()* @my_func @my_alias2 = alias void ()* @my_alias We produce without this patch: .weak my_alias my_alias = my_func .globl my_alias2 my_alias2 = my_alias That is, in the resulting ELF file my_alias, my_func and my_alias are just 3 names pointing to offset 0 of .text. That is *not* the semantics of IR linking. For example, linking in a @my_alias = alias void ()* @other_func would require the strong my_alias to override the weak one and my_alias2 would end up pointing to other_func. There is no way to represent that with aliases being just another name, so the best solution seems to be to just disallow it, converting a miscompile into an error. llvm-svn: 204781
-
David Blaikie authored
Allows this test to pass on COFF platforms so we don't need to restrict this test to a single target anymore. llvm-svn: 204780
-
Ed Maste authored
The issue has been fixed by r204745 and r204750 llvm-svn: 204779
-
Marshall Clow authored
Implement LWG issue #2135. If something goes wrong in condition_variable::wait, call terminate() rather than throwing an error. Do this indirectly, by marking the call as 'noexcept'. This is better than just calling terminate() directly, because it gives a better error message on the console. llvm-svn: 204778
-
Marshall Clow authored
Add tests that should fail when lock() throws. THis is part of LWG issue #2135. No library changes here. llvm-svn: 204777
-
Richard Trieu authored
Previously, -Waddress was empty. Fixes PR9043. llvm-svn: 204776
-
Alexander Kornienko authored
Summary: This allows them to be used without -cc1 the same way as -I and -isystem. Renamed the options to --system-header-prefix=/--no-system-header-prefix to avoid interference with -isystem and make the intent of the option cleaner. Reviewers: rsmith Reviewed By: rsmith CC: cfe-commits Differential Revision: http://llvm-reviews.chandlerc.com/D3185 llvm-svn: 204775
-
Michael J. Spencer authored
llvm-svn: 204774
-
Michael J. Spencer authored
llvm-svn: 204773
-
Rui Ueyama authored
RoundTripYAML pass is removed from the regular execution pass in r204296, so the safeguard to protect it from OOM error is no longer needed, because we are sure that the pass is only used for tests, and test files are all small. We also want to see RoundTripYAML pass to fail in tests if it fails, rather than silently skipping failing tests. llvm-svn: 204772
-
Rafael Espindola authored
The logic was incorrect for variables, causing them to end up in the wrong section if the section had an index >= 0xff00. llvm-svn: 204771
-
Quentin Colombet authored
Adds the different broadcast instructions to the ReplaceableInstrsAVX2 table. That way the ExeDepsFix pass can take better decisions when AVX2 broadcasts are across domain (int <-> float). In particular, prior to this patch we were generating: vpbroadcastd LCPI1_0(%rip), %ymm2 vpand %ymm2, %ymm0, %ymm0 vmaxps %ymm1, %ymm0, %ymm0 ## <- domain change penalty Now, we generate the following nice sequence where everything is in the float domain: vbroadcastss LCPI1_0(%rip), %ymm2 vandps %ymm2, %ymm0, %ymm0 vmaxps %ymm1, %ymm0, %ymm0 <rdar://problem/16354675> llvm-svn: 204770
-
Rafael Espindola authored
We need .symtab_shndxr if and only if a symbol references a section with an index >= 0xff00. The old code was trying to figure out if the section was needed ahead of time, making it a fairly dependent on the code actually writing the table. It was also somewhat conservative and would create the section in cases where it was not needed. If I remember correctly, the old structure was there so that the sections were created in the same order gas creates them. That was valuable when MC's support for ELF was new and we tested with elf-dump.py. This patch refactors the symbol table creation to another class and makes it obvious that .symtab_shndxr is really only created when we are about to output a reference to a section index >= 0xff00. While here, also improve the tests to use macros. One file is one section short of needing .symtab_shndxr, the second one has just the right number. llvm-svn: 204769
-
Hal Finkel authored
The VSX instruction set has two types of FMA instructions: A-type (where the addend is taken from the output register) and M-type (where one of the product operands is taken from the output register). This adds a small pass that runs just after MI scheduling (and, thus, just before register allocation) that mutates A-type instructions (that are created during isel) into M-type instructions when: 1. This will eliminate an otherwise-necessary copy of the addend 2. One of the product operands is killed by the instruction The "right" moment to make this decision is in between scheduling and register allocation, because only there do we know whether or not one of the product operands is killed by any particular instruction. Unfortunately, this also makes the implementation somewhat complicated, because the MIs are not in SSA form and we need to preserve the LiveIntervals analysis. As a simple example, if we have: %vreg5<def> = COPY %vreg9; VSLRC:%vreg5,%vreg9 %vreg5<def,tied1> = XSMADDADP %vreg5<tied0>, %vreg17, %vreg16, %RM<imp-use>; VSLRC:%vreg5,%vreg17,%vreg16 ... %vreg9<def,tied1> = XSMADDADP %vreg9<tied0>, %vreg17, %vreg19, %RM<imp-use>; VSLRC:%vreg9,%vreg17,%vreg19 ... We can eliminate the copy by changing from the A-type to the M-type instruction. This means: %vreg5<def,tied1> = XSMADDADP %vreg5<tied0>, %vreg17, %vreg16, %RM<imp-use>; VSLRC:%vreg5,%vreg17,%vreg16 is replaced by: %vreg16<def,tied1> = XSMADDMDP %vreg16<tied0>, %vreg18, %vreg9, %RM<imp-use>; VSLRC:%vreg16,%vreg18,%vreg9 and we remove: %vreg5<def> = COPY %vreg9; VSLRC:%vreg5,%vreg9 llvm-svn: 204768
-
Bob Wilson authored
Conceptually one of these loops is just a while-loop, but the actual code-gen is more complicated. We don't instrument all the different control flow edges to get accurate counts for each conditional branch, nor do I think it makes sense to do so. Instead, make the simplifying assumption that the loop behaves like a while-loop. Use the same branch weights for the first check for an empty collection as would be used for the back-edge of a while loop, and use that same weighting for the innermost loop, ignoring the possibility that there may be some extra code to go fetch more elements. llvm-svn: 204767
-
NAKAMURA Takumi authored
llvm-svn: 204766
-
- Mar 25, 2014
-
-
Rafael Espindola authored
While at it, factor some logic into FragmentWriter. This will allow more code to be factored out of the fairly large ELFObjectWriter. llvm-svn: 204765
-
Sean Callanan authored
if they didn't change, just like it does for registers. This makes life easier for kernel debugging and any other situation where values are read-only. <rdar://problem/16367795> llvm-svn: 204764
-
Enrico Granata authored
llvm-svn: 204763
-
rdar://problem/14862302Enrico Granata authored
For small structs, the frame format now prints them as one-liners This follows the same definition that frame variable does for deciding what a "small struct" is, and as such should be fairly consistent with the variable display in general llvm-svn: 204762
-
Enrico Granata authored
Make sure this test has a looser dependency on the exact class generated here.. it is going to be some sort of NS-provided String, but let's not bet on the details llvm-svn: 204761
-
Meador Inge authored
When cross-compiling LLVM itself the configure/make scripts get confused when creating the needed build host tools. For example, building and configuring like: CC_FOR_BUILD='i686-pc-linux-gnu-gcc' CXX_FOR_BUILD='i686-pc-linux-gnu-g++' CXX='i686-mingw32-g++' CC='i686-mingw32-gcc' LD='i686-mingw32-ld' /scratch /meadori/llvm-trunk/src/trunk/configure --host=i686-mingw32 CC_FOR_BUILD='i686-pc-linux-gnu-gcc' CXX_FOR_BUILD='i686-pc-linux-gnu-g++' CXX='i686-mingw32-g++' CC='i686-mingw32-gcc' LD='i686-mingw32-ld' make causes the following build break: checking whether the C compiler works... configure: error: cannot run C compiled programs. If you meant to cross compile, use `--host'. See `config.log' for more details. The 'config.log' shows that i686-mingw32-gcc is being used to create executables for the build host. This patch fixes the problem by propogating the names of the build host tools via BUILD_* when configuring/making BuildTools. Original patch by Ekaterina Sanina. llvm-svn: 204760
-
Andrew MacPherson authored
llvm-svn: 204759
-
Juergen Ributzka authored
llvm-svn: 204758
-
Richard Smith authored
in a lambda capture. llvm-svn: 204757
-
rdar://problem/14515139Enrico Granata authored
Add a GetFoundationVersion() to AppleObjCRuntime This API is used to return and cache the major version of Foundation.framework, which is potentially a useful piece of data to key off of to enable or disable certain ObjC related behaviors (especially in data formatters) llvm-svn: 204756
-
David Blaikie authored
Review feedback from Reid Kleckner on r203603. llvm-svn: 204755
-