- Apr 09, 2013
-
-
Alexey Samsonov authored
DWARF parser: Fix DWARF-2/3 incompatibility: size of DW_FORM_ref_addr is the same as DW_FORM_addr in DWARF2, and is 4/8 bytes on 32/64-bit DWARF starting from DWARF3. Adding a test for this is a huge pain - generating and uploading pre-built binary with DWARF3 debug info is way too ugly, and writing fine-grained unittests for DebugInfo is impossible, as it doesn't expose any headers in include/llvm. That said, I'm going to choose the second approach and submit the patch exposing DebugInfo headers for review soon enough. llvm-svn: 179095
-
Jakob Stoklund Olesen authored
llvm-svn: 179086
-
Nadav Rotem authored
llvm-svn: 179084
-
Jakob Stoklund Olesen authored
The save area is twice as big and there is no struct return slot. The stack pointer is always 16-byte aligned (after adding the bias). Also eliminate the stack adjustment instructions around calls when the function has a reserved stack frame. llvm-svn: 179083
-
Rafael Espindola authored
llvm-svn: 179076
-
Rafael Espindola authored
Use it when we don't need to know if we have a 32 or 64 bit SymbolTableEntry. llvm-svn: 179074
-
Rafael Espindola authored
Use it to share code and when we don't need to know if we have a 32 or 64 bit Section. llvm-svn: 179072
-
Nadav Rotem authored
Users may overide new-operators and implement any function that they like. llvm-svn: 179071
-
NAKAMURA Takumi authored
llvm-svn: 179066
-
Shuxin Yang authored
I brazenly think this change is slightly simpler than r178793 because: - no "state" in functor - "OpndPtrs[i]" looks simpler than "&Opnds[OpndIndices[i]]" While I can reproduce the probelm in Valgrind, it is rather difficult to come up a standalone testing case. The reason is that when an iterator is invalidated, the stale invalidated elements are not yet clobbered by nonsense data, so the optimizer can still proceed successfully. Thank Benjamin for fixing this bug and generously providing the test case. llvm-svn: 179062
-
- Apr 08, 2013
-
-
Rafael Espindola authored
llvm-svn: 179051
-
Rafael Espindola authored
llvm-svn: 179048
-
Arnold Schwaighofer authored
The costs are overfitted so that I can still use the legalization factor. For example the following kernel has about half the throughput vectorized than unvectorized when compiled with SSE2. Before this patch we would vectorize it. unsigned short A[1024]; double B[1024]; void f() { int i; for (i = 0; i < 1024; ++i) { B[i] = (double) A[i]; } } radar://13599001 llvm-svn: 179033
-
Chad Rosier authored
rdar://13521249 llvm-svn: 179030
-
Hal Finkel authored
PowerPC has a conditional branch to the link register (return) instruction: BCLR. This should be used any time when we'd otherwise have a conditional branch to a return. This adds a small pass, PPCEarlyReturn, which runs just prior to the branch selection pass (and, importantly, after block placement) to generate these conditional returns when possible. It will also eliminate unconditional branches to returns (these happen rarely; most of the time these have already been tail duplicated by the time PPCEarlyReturn is invoked). This is a nice optimization for small functions that do not maintain a stack frame. llvm-svn: 179026
-
Alexey Samsonov authored
llvm-svn: 179023
-
Rafael Espindola authored
llvm-svn: 179021
-
Vincent Lejeune authored
llvm-svn: 179020
-
Tim Northover authored
I've managed to convince myself that AArch64's acquire/release instructions are sufficient to guarantee C++11's required semantics, even in the sequentially-consistent case. llvm-svn: 179005
-
Benjamin Kramer authored
llvm-svn: 179001
-
Hal Finkel authored
First, we should not cheat: fsel-based lowering of select_cc is a finite-math-only optimization (the ISA manual, section F.3 of v2.06, makes this clear, as does a note in our own README). This also adds fsel-based lowering of EQ and NE condition codes. As it turned out, fsel generation was covered by a grand total of zero regression test cases. I've added some test cases to cover the existing behavior (which is now finite-math only), as well as the new EQ cases. llvm-svn: 179000
-
- Apr 07, 2013
-
-
Rafael Espindola authored
llvm-svn: 178998
-
Rafael Espindola authored
llvm-svn: 178997
-
Rafael Espindola authored
llvm-svn: 178996
-
Rafael Espindola authored
llvm-svn: 178995
-
Rafael Espindola authored
llvm-svn: 178994
-
Jakob Stoklund Olesen authored
There is still no support for byval arguments (which I don't think are needed) and varargs. llvm-svn: 178993
-
Rafael Espindola authored
These were the last missing forwarding functions. Also consistently use the forwarding functions instead of using MachOObj directly. llvm-svn: 178992
-
Rafael Espindola authored
LoadCommandInfo was needed to keep a command and its offset in the file. Now that we always have a pointer to the command, we don't need the offset. llvm-svn: 178991
-
Rafael Espindola authored
This avoids using MachOObject::getLoadCommandInfo. llvm-svn: 178990
-
Rafael Espindola authored
llvm-svn: 178989
-
Rafael Espindola authored
llvm-svn: 178988
-
Rafael Espindola authored
llvm-svn: 178987
-
Rafael Espindola authored
llvm-svn: 178986
-
Rafael Espindola authored
llvm-svn: 178985
-
Hal Finkel authored
llvm-svn: 178982
-
Rafael Espindola authored
llvm-svn: 178979
-
Hal Finkel authored
llvm-svn: 178978
-
Chandler Carruth authored
The fix for PR14972 in r177055 introduced a real think-o in the *store* side, likely because I was much more focused on the load side. While we can arbitrarily widen (or narrow) a loaded value, we can't arbitrarily widen a value to be stored, as that changes the width of memory access! Lock down the code path in the store rewriting which would do this to only handle the intended circumstance. All of the existing tests continue to pass, and I've added a test from the PR. llvm-svn: 178974
-
Hal Finkel authored
A few were missed in r178972. llvm-svn: 178973
-