| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
|
|
|
|
|
|
|
|
| |
This patch fixes a compilation time issue, when MachineSink faces PHIs
with a huge number of operands. This can happen for example in goto table
based interpreters, where some basic blocks can have several of those PHIs,
each one with several hundreds operands. MachineSink was spending a
significant time re-building and re-sorting the list of successors of
the current MachineBasicBlock. The computing and sorting of the current
MachineBasicBlock successors is now cached.
llvm-svn: 239720
|
| |
|
|
|
|
|
|
|
|
|
| |
Add method to query segments for specified output section name.
Return error if the section is assigned to unknown segment.
Check matching of sections to segments during layout on the subject of correctness.
NOTE: no actual functionality of using custom segments is implemented.
Differential Revision: http://reviews.llvm.org/D10359
llvm-svn: 239719
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
ValueTracking used to overwrite the analysis results computed from
assumes and dominating conditions. This patch fixes this issue.
Test Plan: test/Analysis/ValueTracking/assume.ll
Reviewers: hfinkel, majnemer
Reviewed By: majnemer
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D10283
llvm-svn: 239718
|
| |
|
|
| |
llvm-svn: 239717
|
| |
|
|
| |
llvm-svn: 239716
|
| |
|
|
| |
llvm-svn: 239715
|
| |
|
|
| |
llvm-svn: 239714
|
| |
|
|
|
|
| |
AArch64 and ARM backend.
llvm-svn: 239713
|
| |
|
|
|
|
| |
The size field shouldn't include trailing padding.
llvm-svn: 239712
|
| |
|
|
|
|
|
| |
Re-commit after adding "-aarch64-neon-syntax=generic" to fix the failure on OS X.
This patch was firstly committed in r239514, then reverted in r239544 because of a syntax incompatible failure on OS X.
llvm-svn: 239711
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
PE/COFF executables/DLLs usually contain data which is called
base relocations. Base relocations are a list of addresses that
need to be fixed by the loader if load-time relocation is needed.
Base relocations are in .reloc section.
We emit one base relocation entry for each IMAGE_REL_AMD64_ADDR64
relocation.
In order to save disk space, base relocations are grouped by page.
Each group is called a block. A block starts with a 32-bit page
address followed by 16-bit offsets in the page. That is more
efficient representation of addresses than just an array of 32-bit
addresses.
llvm-svn: 239710
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
CFMutableArrayRef escapes
Update ObjCContainersChecker to be notified when pointers escape so it can
remove size information for escaping CFMutableArrayRefs. When such pointers
escape, un-analyzed code could mutate the array and cause the size information
to be incorrect.
rdar://problem/19406485
llvm-svn: 239709
|
| |
|
|
|
|
|
|
|
| |
The C++03 version of function tried to default construct the allocator
in the uses allocator constructors when no allocation was performed. These
constructors would fail to compile when used with allocators that had no
default constructor.
llvm-svn: 239708
|
| |
|
|
| |
llvm-svn: 239707
|
| |
|
|
|
|
|
|
| |
When we add a chunk to an OutputSection, we always want to create
a backreference from an OutputSection to a Chunk. To make sure
we always do, do that in addChunk(). NFC.
llvm-svn: 239706
|
| |
|
|
|
|
|
| |
r239458 changed callee side of this function, so Live can never be
true when this function is called.
llvm-svn: 239705
|
| |
|
|
|
|
|
|
|
|
|
| |
Resource files are data files containing i18n messages, icon images, etc.
MSVC has a tool to convert a resource file to a regular COFF file so that
you can just link that file to embed resources to an executable.
However, you can directly pass resource files to the linker. If you do that,
the linker invokes the tool automatically. This patch implements that feature.
llvm-svn: 239704
|
| |
|
|
|
|
|
|
|
|
| |
resources/windows_version_resource.rc in clang build.
- Who defines ${LLVM_SOURCE_DIR} ?
- Would windows_version_resource.rc be available in an *installed* llvm tree?
I suggest it may be installed in ${PREFIX}/share.
llvm-svn: 239703
|
| |
|
|
|
|
|
| |
Both inf - inf and (-inf) - (-inf) are NaN, so it's already covered by
nnan.
llvm-svn: 239702
|
| |
|
|
|
|
|
|
|
| |
When NaNs and Infs are ignored we can fold
X / X -> 1.0
-X / X -> -1.0
X / -X -> -1.0
llvm-svn: 239701
|
| |
|
|
|
|
|
|
|
|
| |
Shuffle Packed Values at 128-bit Granularity )
Tests added , vector-shuffle-512-v8.ll test re-generated.
Differential Revision: http://reviews.llvm.org/D10300
llvm-svn: 239697
|
| |
|
|
|
|
|
|
|
| |
LLVM side of the patch was committed as r239695.
Differential Revision: http://reviews.llvm.org/D10384
Patch by marina.yatsina@intel.com
llvm-svn: 239696
|
| |
|
|
|
|
|
| |
Differential Revision: http://reviews.llvm.org/D10385
Patch by marina.yatsina@intel.com
llvm-svn: 239695
|
| |
|
|
|
|
|
|
|
|
|
| |
for KNL.
Added intrinsics for cvtsi2ss/d instructions.
Added tests for intrinsics and encoding.
Differential Revision: http://reviews.llvm.org/D10430
llvm-svn: 239694
|
| |
|
|
|
|
|
|
|
|
| |
Before, these would not properly detected because of the char/string
literal found when re-lexing after the first `:
var x = `'`; // comment with matching quote '
var x = `"`; // comment with matching quote "
llvm-svn: 239693
|
| |
|
|
|
|
| |
might not be <MCSymbolELF> here.
llvm-svn: 239692
|
| |
|
|
| |
llvm-svn: 239691
|
| |
|
|
| |
llvm-svn: 239690
|
| |
|
|
|
|
|
|
|
|
|
| |
Some people want to experiment with building i686 CloudABI binaries. I
am not entirely sure this is a good idea, as I'd rather see Intel x32
support appear.
As it only requires a two-line change, let's at least provide compiler
to ease experimenting.
llvm-svn: 239689
|
| |
|
|
|
|
| |
No functionality change intended.
llvm-svn: 239688
|
| |
|
|
|
|
| |
No functionality change intended.
llvm-svn: 239687
|
| |
|
|
| |
llvm-svn: 239686
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
As noted on Errc.h:
// * std::errc is just marked with is_error_condition_enum. This means that
// common patters like AnErrorCode == errc::no_such_file_or_directory take
// 4 virtual calls instead of two comparisons.
And on some libstdc++ those virtual functions conclude that
------------------------
int main() {
std::error_code foo = std::make_error_code(std::errc::no_such_file_or_directory);
return foo == std::errc::no_such_file_or_directory;
}
-------------------------
should exit with 0.
llvm-svn: 239685
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
As noted on Errc.h:
// * std::errc is just marked with is_error_condition_enum. This means that
// common patters like AnErrorCode == errc::no_such_file_or_directory take
// 4 virtual calls instead of two comparisons.
And on some libstdc++ those virtual functions conclude that
------------------------
int main() {
std::error_code foo = std::make_error_code(std::errc::no_such_file_or_directory);
return foo == std::errc::no_such_file_or_directory;
}
-------------------------
should exit with 0.
llvm-svn: 239684
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
As noted on Errc.h:
// * std::errc is just marked with is_error_condition_enum. This means that
// common patters like AnErrorCode == errc::no_such_file_or_directory take
// 4 virtual calls instead of two comparisons.
And on some libstdc++ those virtual functions conclude that
------------------------
int main() {
std::error_code foo = std::make_error_code(std::errc::no_such_file_or_directory);
return foo == std::errc::no_such_file_or_directory;
}
-------------------------
should exit with 0.
llvm-svn: 239683
|
| |
|
|
| |
llvm-svn: 239682
|
| |
|
|
| |
llvm-svn: 239681
|
| |
|
|
| |
llvm-svn: 239680
|
| |
|
|
| |
llvm-svn: 239679
|
| |
|
|
| |
llvm-svn: 239678
|
| |
|
|
| |
llvm-svn: 239677
|
| |
|
|
|
|
| |
No functional changes.
llvm-svn: 239676
|
| |
|
|
| |
llvm-svn: 239675
|
| |
|
|
| |
llvm-svn: 239674
|
| |
|
|
| |
llvm-svn: 239673
|
| |
|
|
| |
llvm-svn: 239672
|
| |
|
|
| |
llvm-svn: 239671
|
| |
|
|
| |
llvm-svn: 239670
|
| |
|
|
|
|
|
|
|
|
|
|
| |
StringSaver now always saves to a BumpPtrAllocator.
The only reason for having the virtual saveImpl is so lld can have a
thread safe version.
The reason for the distinct BumpPtrStringSaver class is to avoid the
virtual destructor.
llvm-svn: 239669
|
| |
|
|
|
|
|
|
|
|
| |
The two main fixes this patch contains are:
- use __identity_t instead of common_type. common_type was used as an
identity metafunction but the decay resulted in incorrect results.
- Pointers to free functions were not counted as functions. Remove the pointer
before checking if a type is a function.
llvm-svn: 239668
|