| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
llvm-svn: 176004
|
|
|
|
|
|
|
| |
the debug info for -gsplit-dwarf so we can encode that location
in the skeleton cu.
llvm-svn: 175933
|
|
|
|
| |
llvm-svn: 175932
|
|
|
|
| |
llvm-svn: 175931
|
|
|
|
| |
llvm-svn: 175908
|
|
|
|
|
|
|
|
| |
The 'nobuiltin' attribute is applied to call sites to indicate that LLVM should
not treat the callee function as a built-in function. I.e., it shouldn't try to
replace that function with different code.
llvm-svn: 175835
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
After cleaning up the following type hierarchies:
* TypeLoc: r175462
* SVal: r175594
* CFGElement: r175462
* ProgramPoint: r175812
that all invoked undefined behavior by causing a derived copy construction of a
base object through an invalid cast (thus supporting code that relied on
casting temporaries that were direct base objects) Clang/LLVM is now clean of
casts of temporaries. So here's some fun SFINAE machinery (courtesy of Eli
Friedman, with some porting back from C++11 to LLVM's traits by me) to cause
compile-time failures if llvm::cast & friends are ever passed an rvalue.
This should avoid a repeat of anything even remotely like PR14321/r168124.
Thanks to Jordan Rose for the help with the various Static Analyzer related
hierarchies that needed cleaning up, Eli for the SFINAE, Richard Smith, John
McCall, Ted Kremenek, and Anna Zaks for their input/reviews/patience along the
way.
llvm-svn: 175819
|
|
|
|
|
|
|
|
| |
be set to zero that is what it was intended. Should improve performance of
the data structure when clear is invoked frequently (both compile time and
memory usage).
llvm-svn: 175799
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
to TargetFrameLowering, where it belongs. Incidentally, this allows us
to delete some duplicated (and slightly different!) code in TRI.
There are potentially other layering problems that can be cleaned up
as a result, or in a similar manner.
The refactoring was OK'd by Anton Korobeynikov on llvmdev.
Note: this touches the target interfaces, so out-of-tree targets may
be affected.
llvm-svn: 175788
|
|
|
|
|
|
|
|
|
|
| |
This fixes some problems with too conservative checking where we were
marking all aliases of a register as used, and then also checking all
aliases when allocating a register.
<rdar://problem/13249625>
llvm-svn: 175782
|
|
|
|
|
|
| |
Code review feedback for r175580 by Jordan Rose.
llvm-svn: 175729
|
|
|
|
|
|
| |
Post commit code review feedback to r175705 from Jordan Rose.
llvm-svn: 175724
|
|
|
|
|
|
|
| |
Provides a general way to add 'explicit' for conversion operators (a no-op when
compiling as C++98).
llvm-svn: 175723
|
|
|
|
| |
llvm-svn: 175710
|
|
|
|
|
|
|
| |
This implementation of NoneType/None does have some holes but I haven't
found one that doesn't - open to improvement.
llvm-svn: 175696
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
s/AddDirectiveHandler/addDirectiveHandler/
s/ParseMSInlineAsm/parseMSInlineAsm/
s/ParseIdentifier/parseIdentifier/
s/ParseStringToEndOfStatement/parseStringToEndOfStatement/
s/ParseEscapedString/parseEscapedString/
s/EatToEndOfStatement/eatToEndOfStatement/
s/ParseExpression/parseExpression/
s/ParseParenExpression/parseParenExpression/
s/ParseAbsoluteExpression/parseAbsoluteExpression/
s/CheckForValidSection/checkForValidSection/
http://llvm.org/docs/CodingStandards.html#name-types-functions-variables-and-enumerators-properly
No functional change intended.
llvm-svn: 175675
|
|
|
|
|
|
|
|
|
|
|
| |
http://llvm.org/docs/CodingStandards.html#name-types-functions-variables-and-enumerators-properly
ivars should be camel-case and start with an upper-case letter. A few in
TargetLowering were starting with a lower-case letter.
No functional change intended.
llvm-svn: 175667
|
|
|
|
|
|
|
| |
Performance is the same, but LiveRangeUpdater has a more flexible
interface.
llvm-svn: 175645
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Adding new segments to large LiveIntervals can be expensive because the
LiveRange objects after the insertion point may need to be moved left or
right. This can cause quadratic behavior when adding a large number of
segments to a live range.
The LiveRangeUpdater class allows the LIveInterval to be in a temporary
invalid state while segments are being added. It maintains an internal
gap in the LiveInterval when it is shrinking, and it has a spill area
for new segments when the LiveInterval is growing.
The behavior is similar to the existing mergeIntervalRanges() function,
except it allocates less memory for the spill area, and the algorithm is
turned inside out so the loop is driven by the clients.
llvm-svn: 175644
|
|
|
|
|
|
|
| |
It is useful to be able to create temporary LiveRange object whose
members are filled in later.
llvm-svn: 175639
|
|
|
|
|
|
| |
Sorry, I didn't cover +Asserts, by accident. :(
llvm-svn: 175633
|
|
|
|
| |
llvm-svn: 175627
|
|
|
|
| |
llvm-svn: 175626
|
|
|
|
| |
llvm-svn: 175621
|
|
|
|
| |
llvm-svn: 175602
|
|
|
|
|
|
|
|
|
|
| |
and removing instructions. The implementation seems more complicated than it
needs to be, but I couldn't find something simpler that dealt with all of the
corner cases.
Also add a call to repairIndexesInRange() from repairIntervalsInRange().
llvm-svn: 175601
|
|
|
|
| |
llvm-svn: 175600
|
|
|
|
|
|
|
| |
assertions in the register allocator when running 'make check' without
LiveVariables.
llvm-svn: 175599
|
|
|
|
|
|
| |
Code review feedback on r175580 from Jordan Rose.
llvm-svn: 175595
|
|
|
|
| |
llvm-svn: 175592
|
|
|
|
| |
llvm-svn: 175584
|
|
|
|
| |
llvm-svn: 175581
|
|
|
|
|
|
|
|
|
| |
This generalizes Optional to require less from the T type by using aligned
storage for backing & placement new/deleting the T into it when necessary.
Also includes unit tests.
llvm-svn: 175580
|
|
|
|
|
|
|
| |
require call cpp file anyway, so we wouldn't gain anything by keeping them
inline.
llvm-svn: 175579
|
|
|
|
|
|
|
|
|
|
|
|
| |
excluding visibility bits.
Mips (o32 abi) specific e_header setting.
EF_MIPS_ABI_O32 needs to be set in the
ELF header flags for o32 abi output.
Contributer: Reed Kotler
llvm-svn: 175569
|
|
|
|
|
|
|
|
|
|
|
|
| |
excluding visibility bits.
Mips (Mips16) specific e_header setting.
EF_MIPS_ARCH_ASE_M16 needs to be set in the
ELF header flags for Mips16.
Contributer: Reed Kotler
llvm-svn: 175566
|
|
|
|
|
|
|
|
|
|
|
| |
excluding visibility bits.
Mips (MicroMips) specific STO handling .
The st_other field settig for STO_MIPS_MICROMIPS
Contributer: Zoran Jovanovic
llvm-svn: 175564
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
excluding visibility bits.
Generic STO handling at the Target level.
The st_other field of the ELF symbol table is one
byte in size. The first 2 bytes are used for generic
visibility and are currently handled by llvm.
The other six bits are processor specific and need
to be set at the target level.
A couple of notes:
The new static methods for accessing and setting the "other"
flags in include/llvm/MC/MCELF.h match the style guide
and not the other methods in the file. I don't like the
inconsistency, but feel I should follow the prescribed
lowerUpper() convention.
STO_ value definitions are not specified in gnu land as
consistently as the STT_ and STB_ fields. Probably because
the latter were defined in a standards doc and the former
defined partially in code. I have stuck with the full byte
definition of the flags.
Contributer: Zoran Jovanovic
llvm-svn: 175561
|
|
|
|
| |
llvm-svn: 175559
|
|
|
|
|
|
|
|
| |
considered as instructions with side effects.
rdar://13227456
llvm-svn: 175553
|
|
|
|
|
|
| |
unit test.
llvm-svn: 175538
|
|
|
|
|
|
| |
is explicitly called during module initialization of lib/Support/Process.cpp. It reads the field of global object PosixZeroTime, which is not guaranteed to be initialized at this point. Found by AddressSanitizer with -fsanitize=init-order option.
llvm-svn: 175509
|
|
|
|
| |
llvm-svn: 175493
|
|
|
|
| |
llvm-svn: 175469
|
|
|
|
|
|
|
| |
Also removes some redundant DNI comments on function declarations already
using the macro.
llvm-svn: 175466
|
|
|
|
| |
llvm-svn: 175457
|
|
|
|
|
|
|
| |
Also, GetElementPtrInst::getType() method returns SequentialType now, instead of
PointerType. There wasn't any issue yet, so no testcase attached.
llvm-svn: 175452
|
|
|
|
| |
llvm-svn: 175449
|
|
|
|
|
|
|
| |
Currently we're at 34. Bitset should compile into virtually the same code as
uint64_t here.
llvm-svn: 175437
|
|
|
|
| |
llvm-svn: 175430
|