| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
This change introduces a !make.implicit metadata that allows the
frontend to pre-select the set of explicit null checks that will be
considered for transformation into implicit null checks.
The reason for not using profiling data instead of !make.implicit is
explained in the change to `FaultMaps.rst`.
Reviewers: atrick, reames, pgavlin, JosephTremoulet
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D10824
llvm-svn: 241116
|
| |
|
|
|
|
|
|
|
|
|
|
| |
This is part of an effort to pack the average MCSymbol down to 24 bytes.
The HasName bit was pushing the size of the bitfield over to another word,
so this change uses a PointerIntPair to fit in it to unused bits of a
PointerUnion.
Reviewed by Rafael Espíndola
llvm-svn: 241115
|
| |
|
|
|
|
|
| |
We can probably do better in this method, but this is an improvement and
enables further ErrorOr cleanups.
llvm-svn: 241114
|
| |
|
|
| |
llvm-svn: 241112
|
| |
|
|
| |
llvm-svn: 241110
|
| |
|
|
| |
llvm-svn: 241109
|
| |
|
|
| |
llvm-svn: 241108
|
| |
|
|
| |
llvm-svn: 241105
|
| |
|
|
| |
llvm-svn: 241104
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
It is mandatory to specify a comdat in order to receive comdat semantics
for a symbol. We were previously getting this wrong in -function-sections
mode; linker-weak symbols were being emitted in a selectany comdat. This
change causes such symbols to use a noduplicates comdat instead, fixing
the inconsistency.
Also correct an inaccuracy in the docs.
Differential Revision: http://reviews.llvm.org/D10828
llvm-svn: 241103
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
location.
IRBuilder::SetInsertPoint(BB, BB::iterator) is an older version of
IRBuilder::SetInsertPoint(Instruction). However, the latter updates
the current debug location of emitted instruction, while the former
doesn't, which is confusing.
Unify the behavior of these methods: now they both set current debug
location to the debug location of instruction at insertion point.
The callers of IRBuilder::SetInsertPoint(BB, BB::iterator) doesn't
seem to depend on the old behavior (keeping the original debug info
location). On the contrary, sometimes they (e.g. SCEV) *should* be
updating debug info location, but don't. I'll look at gdb bots after
the commit to check that we don't regress on debug info somewhere.
This change may make line table more fine-grained, thus increasing
debug info size. I haven't observed significant increase, though:
it varies from negligible to 0.3% on several binaries and self-hosted
Clang.
This is yet another change targeted at resolving PR23837.
llvm-svn: 241101
|
| |
|
|
| |
llvm-svn: 241100
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
Really check if %SP is not used in other places, instead of checking only exact
one non-dbg use.
Patched by Xuetian Weng.
Test Plan:
@foo4 in test/CodeGen/NVPTX/local-stack-frame.ll, create a case that
SP will appear twice.
Reviewers: jholewinski, jingyue
Reviewed By: jingyue
Subscribers: llvm-commits, sfantao, jholewinski
Differential Revision: http://reviews.llvm.org/D10844
llvm-svn: 241099
|
| |
|
|
| |
llvm-svn: 241097
|
| |
|
|
| |
llvm-svn: 241096
|
| |
|
|
|
|
| |
We were already checking, but were missing a test.
llvm-svn: 241094
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
This commit implements serialization of the machine basic block successors. It
uses a YAML flow sequence that contains strings that have the MBB references.
The MBB references in those strings use the same syntax as the MBB machine
operands in the machine instruction strings.
Reviewers: Duncan P. N. Exon Smith
Differential Revision: http://reviews.llvm.org/D10699
llvm-svn: 241093
|
| |
|
|
|
|
|
| |
This commit enables the MIR printer to reuse the code that prints MBB
references.
llvm-svn: 241087
|
| |
|
|
|
|
|
| |
This commit extracts the code that reports an error that's produced by the
machine instruction parser into a new method that can be reused in other places.
llvm-svn: 241086
|
| |
|
|
|
|
|
|
|
| |
This commit refactors the interface for machine instruction parser. It adopts
the pattern of returning a bool and passing in the result in the first argument
that is used by the other parsing methods for the the method 'parse' and the
function 'parseMachineInstr'.
llvm-svn: 241085
|
| |
|
|
|
|
| |
backend.
llvm-svn: 241081
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
generated by the Autoconf/Makefile build system relocatable.
Previously the generated CMake files contained hardcoded paths which
prevented a binary installation from being relocated to a different
place in the file system. This problem was most noticeable in LLVM's
official binary releases which were completely unusable by a downstream
project trying to import the CMake targets.
Package maintainers who choose to modify the install location of the
CMake directory without using the ``PROJ_cmake`` Makefile variable
override will need to patch the generated``LLVMConfig.cmake`` so that
``LLVM_INSTALL_PREFIX`` and ``_LLVM_CMAKE_DIR`` variables are set
correctly.
llvm-svn: 241080
|
| |
|
|
|
|
|
|
|
|
|
|
| |
This commit refactors the machine instruction lexer so that the lexing
functions use the 'maybeLex...' pattern, where they determine if they
can lex the current token by themselves.
Reviewers: Sean Silva
Differential Revision: http://reviews.llvm.org/D10817
llvm-svn: 241078
|
| |
|
|
| |
llvm-svn: 241076
|
| |
|
|
| |
llvm-svn: 241074
|
| |
|
|
| |
llvm-svn: 241070
|
| |
|
|
|
|
|
|
|
|
| |
Duplicating an FP register "as itself" is a bad idea, since it violates the
invariant that every FP register is mapped to at most one FPU stack slot.
Use the scratch FP register instead.
This fixes PR23957.
llvm-svn: 241069
|
| |
|
|
|
|
|
|
|
| |
These directives are used to set the default value of the SoftFloat feature.
They have the same effect as setting -m{soft, hard}-float from the command line.
Differential Revision: http://reviews.llvm.org/D9073
llvm-svn: 241066
|
| |
|
|
|
|
| |
Differential Revision: http://reviews.llvm.org/D10643
llvm-svn: 241062
|
| |
|
|
| |
llvm-svn: 241061
|
| |
|
|
|
|
|
|
|
| |
represented by uint64_t, this patch replaces these
usages with the FeatureBitset (std::bitset) type.
Differential Revision: http://reviews.llvm.org/D10542
llvm-svn: 241058
|
| |
|
|
|
|
| |
I forgot to specify the correct pass.
llvm-svn: 241054
|
| |
|
|
|
|
| |
Differential Revision: http://reviews.llvm.org/D10657
llvm-svn: 241052
|
| |
|
|
|
|
| |
Add intrinsics for the FXSR instructions (FXSAVE/FXSAVE64/FXRSTOR/FXRSTOR64)
llvm-svn: 241049
|
| |
|
|
|
| |
FIXME: Should they be moved onto Elf_Sym_Impl::getNmae()?
llvm-svn: 241044
|
| |
|
|
| |
llvm-svn: 241042
|
| |
|
|
|
|
|
| |
This unbreaks TripleTest.Normalization. We'll have to come up with a new
plan for the OS component of the target triple for WebAssembly.
llvm-svn: 241041
|
| |
|
|
| |
llvm-svn: 241040
|
| |
|
|
| |
llvm-svn: 241039
|
| |
|
|
|
|
| |
rdar://problem/20965932
llvm-svn: 241034
|
| |
|
|
| |
llvm-svn: 241033
|
| |
|
|
| |
llvm-svn: 241030
|
| |
|
|
|
|
|
|
|
|
|
| |
Realistically, this will be returning ErrorOr for some time as refactoring the
user code to check once per section will take some time.
Given that, use it for checking if a relocation has addend or not.
While at it, add ELFRelocationRef to simplify the users.
llvm-svn: 241028
|
| |
|
|
|
|
|
|
| |
A call to removeEmptySubranges() is necessary after every operation that
potentially removes all segments from a subregister range; this case in
the register coalescer was missing.
llvm-svn: 241027
|
| |
|
|
| |
llvm-svn: 241026
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
If you only need Name and Value fields in the COFF symbol,
you don't need to distinguish 32 bit and 64 bit COFF symbols.
These fields start at the same offsets and have the same size.
This data strucutre is one pointer smaller than COFFSymbolRef
thus slightly efficient. I'll use this class in LLD as we create
millions of LLD symbol objects that currently contain COFFSymbolRef.
Shaving off 8 byte (or 4 byte on 32 bit) from that class actually
matters becasue of the number of objects we create in LLD.
llvm-svn: 241024
|
| |
|
|
|
|
|
| |
If a section is not SHT_REL or SHT_RELA, we never create a valid iterator,
so the getRelocation* methods should always see a section with the correct type.
llvm-svn: 241023
|
| |
|
|
|
|
|
| |
This WebAssembly backend is just a skeleton at this time and is not yet
functional.
llvm-svn: 241022
|
| |
|
|
| |
llvm-svn: 241021
|
| |
|
|
|
|
|
|
|
| |
Specifically, remove the dependent library interface and replace the existing
linker option interface with a new one that returns a single list of flags.
Differential Revision: http://reviews.llvm.org/D10820
llvm-svn: 241018
|