| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
I also added a test.
Original message:
Allow FDE references outside the +/-2GB range supported by PC relative
offsets for code models other than small/medium. For JIT application,
memory layout is less controlled and can result in truncations
otherwise.
Patch from Akos Kiss.
Differential Revision: http://reviews.llvm.org/D6079
llvm-svn: 222897
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
model and PIC:"
This reverts commit r222760.
It changed our behaviour on PIC so we don't match gas anymore. It also
included lots of unnecessary changes to tests.
If those changes are desirable, there should be an independent discussion
as they are out of scope for that patch.
I will recommit the other bits.
llvm-svn: 222896
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This reverts commit r222727, which causes LTO bootstrap failures.
Last passing @ r222698:
http://lab.llvm.org:8080/green/job/clang-Rlto_master_build/532/
First failing @ r222843:
http://lab.llvm.org:8080/green/job/clang-Rlto_master_build/533/
Internal bootstraps pointed at a much narrower range: r222725 is
passing, and r222731 is failing.
LTO crashes while handling libclang.dylib:
http://lab.llvm.org:8080/green/job/clang-Rlto_master_build/533/consoleFull#-158682280549ba4694-19c4-4d7e-bec5-911270d8a58c
GEP is not of right type for indices!
%InfoObj.i.i = getelementptr inbounds %"class.llvm::OnDiskIterableChainedHashTable"* %.lcssa, i64 0, i32 0, i32 4, !dbg !123627
%"class.clang::serialization::reader::ASTIdentifierLookupTrait" = type { %"class.clang::ASTReader.31859"*, %"class.clang::serialization::ModuleFile.31870"*, %"class.clang::IdentifierInfo"* }LLVM ERROR: Broken function found, compilation aborted!
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Looks like the new algorithm doesn't merge types aggressively enough.
llvm-svn: 222895
|
| |
|
|
|
|
| |
language on the code block. Also fixing an indentation warning. NFC to the content of the documentation itself.
llvm-svn: 222894
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Before:
var someVariable =
function(x) { return x.zIsTooLongForOneLineWithTheDeclarationLine(); };
After:
var someVariable = function(x) {
return x.zIsTooLongForOneLineWithTheDeclarationLine();
};
llvm-svn: 222893
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Before:
var obj = {
fooooooooo:
function(x) { return x.zIsTooLongForOneLineWithTheDeclarationLine(); }
};
After:
var obj = {
fooooooooo: function(x) {
return x.zIsTooLongForOneLineWithTheDeclarationLine();
}
};
llvm-svn: 222892
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
guarding table comparison if possible.
Fixed missing dominance check.
Original commit message:
This optimization tries to reuse the generated compare instruction, if there is a comparison against the default value after the switch.
Example:
if (idx < tablesize)
r = table[idx]; // table does not contain default_value
else
r = default_value;
if (r != default_value)
...
Is optimized to:
cond = idx < tablesize;
if (cond)
r = table[idx];
else
r = default_value;
if (cond)
...
Jump threading will then eliminate the second if(cond).
llvm-svn: 222891
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Before:
someObject.new ();
someObject.delete ();
After:
someObject.new();
someObject.delete();
llvm-svn: 222890
|
| |
|
|
|
|
| |
This functionality was only used in MSanDR, which is deprecated.
llvm-svn: 222889
|
| |
|
|
|
|
|
|
|
|
|
| |
Before:
var MyLongClassName = goog.module.get('my.long.module.name.followedBy.MyLongClassName');
After:
var MyLongClassName =
goog.module.get('my.long.module.name.followedBy.MyLongClassName');
llvm-svn: 222888
|
| |
|
|
|
|
|
|
| |
LI16, ADDIUR1SP, ADDIUR2 and ADDIUS5
Differential Revision: http://reviews.llvm.org/D6419
llvm-svn: 222887
|
| |
|
|
|
|
| |
This fixes llvm.org/PR21676.
llvm-svn: 222886
|
| |
|
|
|
|
| |
Differential Revision: http://reviews.llvm.org/D6417
llvm-svn: 222885
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
UNWIND_X86_64_MODE_STACK_IND mode is almost correct; extra stack
space allocated before the reg saves isn't handled right. Still a
little wobbily on the file addresses of functions. Finally understand
how the 6 registers that may be saved are ordered in just 10 its
of space -- the Lehmer code for the registers is derived and then
the sequence is encoded in a variable base number. Added some
comments with references to what the code is doing so it'll be
easier for others to track down.
llvm-svn: 222884
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The string data for string-valued build attributes were being unconditionally
uppercased. There is no mention in the ARM ABI addenda about case conventions,
so it's technically implementation defined as to whether the data are
capitialised in some way or not. However, there are good reasons not to
captialise the data.
* It's less work.
* Some vendors may legitimately have case-sensitive checks for these
attributes which would fail on LLVM generated object files.
* There could be locale issues with uppercasing.
The original reasons for uppercasing appear to have stemmed from an
old codesourcery toolchain behaviour, see
http://comments.gmane.org/gmane.comp.compilers.llvm.cvs/87133
This patch makes the object file emitted no longer captialise string
data, it encodes as seen in the assembly source.
Change-Id: Ibe20dd6e60d2773d57ff72a78470839033aa5538
llvm-svn: 222882
|
| |
|
|
|
|
| |
Differential Revision: http://reviews.llvm.org/D6430
llvm-svn: 222879
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
According to the Google C++ Style Guide, constructors taking a single
std::initializer_list<> should not be marked explicit.
This change also changes the messages according to conventions used in Clang
diagnostics: no capitalization of the first letter, no trailing dot.
Reviewers: djasper
Reviewed By: djasper
Subscribers: curdeius, cfe-commits
Differential Revision: http://reviews.llvm.org/D6427
llvm-svn: 222878
|
| |
|
|
|
|
|
|
| |
table comparison if possible."
It is breaking the clang bootstrag.
llvm-svn: 222877
|
| |
|
|
|
|
| |
Differential Revision: http://reviews.llvm.org/D6432
llvm-svn: 222876
|
| |
|
|
|
|
| |
This fixes llvm.org/PR19540
llvm-svn: 222874
|
| |
|
|
|
|
|
|
|
| |
This file tests the sequence of digits that can come before
an MI command.
Patch from dawn@burble.org.
llvm-svn: 222873
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
comparison if possible.
This optimization tries to reuse the generated compare instruction, if there is a comparison against the default value after the switch.
Example:
if (idx < tablesize)
r = table[idx]; // table does not contain default_value
else
r = default_value;
if (r != default_value)
...
Is optimized to:
cond = idx < tablesize;
if (cond)
r = table[idx];
else
r = default_value;
if (cond)
...
\endcode
Jump threading will then eliminate the second if(cond).
llvm-svn: 222872
|
| |
|
|
|
|
|
|
| |
This restores our ability to optimize:
(X & C) == 0 ? X ^ C : X into X | C
(X & C) != 0 ? X ^ C : X into X & ~C
llvm-svn: 222871
|
| |
|
|
| |
llvm-svn: 222869
|
| |
|
|
|
|
|
|
|
|
| |
This restores our ability to optimize:
(X & C) ? X & ~C : X into X & ~C
(X & C) ? X : X & ~C into X
(X & C) ? X | C : X into X
(X & C) ? X : X | C into X | C
llvm-svn: 222868
|
| |
|
|
|
|
|
|
| |
All symbols have to be stored in the global symbol to enable
cross-rtdyld-instance linking, so the local symbol table content is
redundant.
llvm-svn: 222867
|
| |
|
|
|
|
|
| |
Hopefully this will fix
http://bb.pgr.jp/builders/clang-3stage-x86_64-linux/builds/8271/steps/stage1_build/logs/stdio
llvm-svn: 222866
|
| |
|
|
|
|
| |
consideration for C++17 for now. Update C++ status page to match.
llvm-svn: 222865
|
| |
|
|
|
|
| |
move GDBRegistrationListener into ExecutionEngine to avoid layering violation.
llvm-svn: 222864
|
| |
|
|
|
|
| |
other function named "move".
llvm-svn: 222863
|
| |
|
|
|
|
|
|
| |
has failed.
Otherwise, IsValid crashes on assertation in GetFamilyLength.
llvm-svn: 222862
|
| |
|
|
|
|
| |
to put it. This should unbreak the Mips bots.
llvm-svn: 222861
|
| |
|
|
| |
llvm-svn: 222860
|
| |
|
|
|
|
|
|
|
| |
RuntimeDyldChecker.
RuntimeDyld instances should only provide lookup for locally defined
symbols.
llvm-svn: 222859
|
| |
|
|
| |
llvm-svn: 222858
|
| |
|
|
| |
llvm-svn: 222857
|
| |
|
|
|
|
|
|
|
|
|
| |
This reverts commit r210006, it miscompiled libapr which is used in who
knows how many projects.
A test has been added to ensure that we don't regress again.
I'll work on a rewrite of what the optimization was trying to do later.
llvm-svn: 222856
|
| |
|
|
|
|
| |
Mostly pulled from Rafael's r185678 commit message.
llvm-svn: 222855
|
| |
|
|
| |
llvm-svn: 222854
|
| |
|
|
| |
llvm-svn: 222853
|
| |
|
|
|
|
|
|
|
| |
llvm-objdump printed out an error message for this off-by-one error,
but because it always exits with 0 whether or not it found an error,
the test (llvm-objdump/coff-many-relocs.test) succeeded.
I made llvm-objdump exit with EXIT_FAILURE when an error is found.
llvm-svn: 222852
|
| |
|
|
| |
llvm-svn: 222851
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
This sort of doesn't matter since the setcc type is i1, but
this previously was using the default UndefinedBooleanContent. This
makes it more consistent with R600. This enables more optimizations
which typically give up on UndefinedBooleanContent. For example,
there is already a special case target DAG combine for
setcc + sext which can be eliminated in favor of what the generic
DAG combiner can do if it assumes boolean values are sign extended.
Since -1 is an inline immediate, using it is basically free and the
backend already uses it when a boolean value is needed in a wider type.
llvm-svn: 222850
|
| |
|
|
| |
llvm-svn: 222849
|
| |
|
|
| |
llvm-svn: 222848
|
| |
|
|
|
|
|
|
| |
LBU16, LHU16, LW16, SB16, SH16 and SW16
Differential Revision: http://reviews.llvm.org/D6405
llvm-svn: 222847
|
| |
|
|
| |
llvm-svn: 222846
|
| |
|
|
|
|
|
|
| |
and invalid environment.
http://reviews.llvm.org/D6392
llvm-svn: 222845
|
| |
|
|
|
|
|
|
|
| |
This fixes moving boolean constants into registers before operating
on them. They get permuted and shrunk down to e32 anyway later. This
is a temporary fix until the patch that removes these pseudos is
committed.
llvm-svn: 222844
|
| |
|
|
|
|
| |
This fixes llvm.org/PR21677.
llvm-svn: 222843
|