| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
enabled and mthc1 and dmtc1 are not available (e.g. on MIPS32r1)
This prevents the upper 32-bits of a double precision value from being moved to
the FPU with mtc1 to an odd-numbered FPU register. This is necessary to ensure
that the code generated executes correctly regardless of the current FPU mode.
MIPS32r2 and above continues to use mtc1/mthc1, while MIPS-IV and above continue
to use dmtc1.
Differential Revision: http://reviews.llvm.org/D4465
llvm-svn: 212930
|
| |
|
|
|
|
|
|
| |
This was done by calling __cxa_demangle directly, which is bad
when c++abi library is instrumented. The following line always
contains the demangled name (when running with a symbolizer) anyway.
llvm-svn: 212929
|
| |
|
|
| |
llvm-svn: 212928
|
| |
|
|
| |
llvm-svn: 212927
|
| |
|
|
|
|
| |
Fixed in r212872.
llvm-svn: 212926
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We move back to a simple approach where the liveout is the last must-write
statement for a data-location plus all may-write statements. The previous
approach did not work out. We would have to consider per-data-access
dependences, instead of per-statement dependences to correct it. As this adds
complexity and it seems we would not gain anything over the simpler approach
that we implement in this commit, I moved us back to the old approach of
computing the liveout, but enhanced it to also add may-write accesses.
We also fix the test case and explain why we can not perform dead code
elimination in this case.
llvm-svn: 212925
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
This patch implements a subset of possible replacements of C-style
casts with const_cast/static_cast/reinterpret_cast. This should cover a large
portion of cases in real code. Handling of a few more cases may be implemented
eventually.
Reviewers: sbenza, djasper
Reviewed By: djasper
Subscribers: cfe-commits
Differential Revision: http://reviews.llvm.org/D4478
llvm-svn: 212924
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Now that llgs supports communicating the 0-port choose-a-port
mechanism and can communicate that back to a caller via the
--named-pipe option (at parity with debugserver), we use this
mechanism to always start llgs and debugserver gdb-remote
protocol tests without needing to use some port arbitration
mechanism. This eliminates some potential intermittent failures vs. the
previous random port and collision-avoidance strategy used.
llvm-svn: 212923
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
This crash was pretty common while compiling Rust for iOS (armv7). Reason -
SjLj preparation step was lowering aggregate arguments as ExtractValue +
InsertValue. ExtractValue has assertion which checks that there is some data in
value, which is not true in case of empty (no fields) structures. Rust uses
them quite extensively so this patch uses a 'select true, %val, undef'
instruction to lower the argument.
Patch by Valerii Hiora.
llvm-svn: 212922
|
| |
|
|
|
|
| |
as well, when target names or "nativecodegen" are specified.
llvm-svn: 212921
|
| |
|
|
| |
llvm-svn: 212920
|
| |
|
|
| |
llvm-svn: 212919
|
| |
|
|
|
|
| |
referenced.
llvm-svn: 212918
|
| |
|
|
| |
llvm-svn: 212917
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
a function pointer is neither better nor worse than binding a function lvalue
to a function rvalue reference. Don't get confused and think that both bindings
are binding to a function lvalue (which would make the lvalue form win); the
const reference is binding to an rvalue.
The "real" bug in PR20218 is still present: we're getting the wrong answer from
template argument deduction, and that's what leads us to this weird overload
set.
llvm-svn: 212916
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
trying to fold shuffles.
Verify that DAGCombiner does not crash when trying to fold a pair of shuffles
according to rule (added at r212539):
(shuffle (shuffle A, Undef, M0), Undef, M1) -> (shuffle A, Undef, M2)
The DAGCombiner avoids folding shuffles if the resulting shuffle dag node
is not legal for the target. That means, the resulting shuffle must have
legal type and legal mask.
Before, the DAGCombiner only called method
'TargetLowering::isShuffleMaskLegal' to check if it was "safe" to fold according
to the above-mentioned rule. However, this caused a crash in the x86 backend
since method 'isShuffleMaskLegal' always expects to be called on a
legal vector type.
llvm-svn: 212915
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is the first of a number of changes designed to generalise
MCWin64EHInstruction to support different target architectures. An ordered set
(vector) of these instructions is saved per frame to permit the emission of
information for Windows NT style unwinding. The only bit of information which
is actually target specific here is the Opcode for the unwinding bytecode. The
remainder of the information is simply generic information that is relevant to
the Windows NT unwinding model.
Remove the accessors for the fields, making them const and public instead. Sink
the knowledge of the alias'ed name into the single source and sink a single-use
check method into the use.
llvm-svn: 212914
|
| |
|
|
|
|
|
| |
Introduce const-ness on parameters, they are used as read-only and should not be
modified. NFC.
llvm-svn: 212913
|
| |
|
|
|
|
|
|
| |
Rename member variables and functions for the MCStreamer for DWARF-like
unwinding management. Rename the Windows ones as well and make the naming and
handling similar across the two. No functional change intended.
llvm-svn: 212912
|
| |
|
|
| |
llvm-svn: 212911
|
| |
|
|
| |
llvm-svn: 212910
|
| |
|
|
| |
llvm-svn: 212909
|
| |
|
|
|
|
| |
obj2yaml and yaml2obj tools.
llvm-svn: 212908
|
| |
|
|
|
|
| |
Loadable modules could be enabled without BUILD_SHARED_LIBS with tweaks in future.
llvm-svn: 212907
|
| |
|
|
|
|
| |
PrintFunctionNames and SampleAnalyzerPlugin, for Win32.DLL.
llvm-svn: 212906
|
| |
|
|
| |
llvm-svn: 212905
|
| |
|
|
|
|
| |
BugpointPasses, on Win32.
llvm-svn: 212904
|
| |
|
|
|
|
|
|
|
|
| |
LIBRARY_OUTPUT_DIRECTORY.
On Win32.DLL, it points not lib but bin.
LIBRARY_OUTPUT_DIRECTORY affects add_library(MODULE), especially Win32.DLL.
llvm-svn: 212903
|
| |
|
|
|
|
|
| |
couldn't be reopened on Win32.
FIXME: We may have an option in openFileForWrite(), not to use ResultFD but to close it.
llvm-svn: 212902
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previously, we would have a private backing variable and an internal
alias pointing at it.
However, -fdata-sections only fires if a global variable has non-private
linkage. This means that an unreferenced vftable wouldn't get
discarded, bloating the object file.
Instead, stick the backing variable in a comdat even if the alias has
internal linkage. This will allow the linker to drop the vftable if it
is unused.
llvm-svn: 212901
|
| |
|
|
|
|
|
|
|
|
| |
Our verifier check for checking if a global has local linkage was too
strict. Forbid private linkage but permit local linkage.
Object file formats permit this and forbidding it prevents elimination
of unused, internal, vftables under the MSVC ABI.
llvm-svn: 212900
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
MC was aping a binutils bug where aliases would default their linkage to
private instead of internal.
I've sent a patch to the binutils maintainers and they've recently
applied it to the GNU assembler sources.
This fixes PR20152.
Differential Revision: http://reviews.llvm.org/D4395
llvm-svn: 212899
|
| |
|
|
| |
llvm-svn: 212898
|
| |
|
|
| |
llvm-svn: 212897
|
| |
|
|
| |
llvm-svn: 212896
|
| |
|
|
|
|
|
| |
Re-run tests changed in r211110 to test both paths.
Also fix broken check line.
llvm-svn: 212895
|
| |
|
|
|
|
|
| |
The unpromoted path still needs to be tested since we can't
always promote to using LDS.
llvm-svn: 212894
|
| |
|
|
|
|
|
| |
This can make writing some tests harder, so add a flag
to disable it.
llvm-svn: 212893
|
| |
|
|
| |
llvm-svn: 212892
|
| |
|
|
|
|
|
|
| |
This adds the ARM ACLE hint intrinsic wrappers to arm_acle.h. These need to be
protected with a !defined(_MSC_VER) since MSVC (and thus clang in compatibility
mode) provide these wrappers as proper builtin intrinsics.
llvm-svn: 212891
|
| |
|
|
|
|
|
| |
This adds support for the ACLE hint intrinsics on AArch64 similar to ARM. This
is required to properly support ACLE on AArch64.
llvm-svn: 212890
|
| |
|
|
| |
llvm-svn: 212889
|
| |
|
|
| |
llvm-svn: 212888
|
| |
|
|
|
|
| |
Include section number in ARM ACLE specification for easier navigation.
llvm-svn: 212887
|
| |
|
|
| |
llvm-svn: 212886
|
| |
|
|
|
|
| |
Theoretically this should now work for MachineBasicBlocks.
llvm-svn: 212885
|
| |
|
|
|
|
| |
s_listen_thread had the wrong type.
llvm-svn: 212884
|
| |
|
|
|
|
|
|
|
|
|
| |
This adds a llvm.aarch64.hint intrinsic to mirror the llvm.arm.hint in order to
support the various hint intrinsic functions in the ACLE.
Add an optional pattern field that permits the subclass to specify the pattern
that matches the selection. The intrinsic pattern is set as mayLoad, mayStore,
so overload the value for the definition of the hint instruction.
llvm-svn: 212883
|
| |
|
|
|
|
|
|
|
| |
Due to the fact that the windows unwinding has the concept of chained frames, we
maintain a current frame info pointer that is adjusted on any push and pop of a
unwinding context. This just removes an unnecessary variable that was used to
mirror the DWARF unwinding code.
llvm-svn: 212882
|
| |
|
|
|
|
|
|
| |
This structure contains information related to the call frame used to generate
unwinding information. Rename this to reflect the future use to represent the
shared state between various architectures for WinCFI information.
llvm-svn: 212881
|