summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* Make the entry point function calls consistent. NFC.Rui Ueyama2016-02-284-9/+9
| | | | llvm-svn: 262191
* Move functionality of UniversalDriver to the entry point file.Rui Ueyama2016-02-289-311/+109
| | | | | | | | | | | | | | UniversalDriver was used as a dispatcher to each platform-specific driver. It had its own Options.td file. It was not just too much to parse only a few options (we only want to parse -core, -flavor or argv[0]), but also interpreted arguments too early. For example, if you invoke lld as "lld -flavor gnu ... -help", then you'd get the UniversalDriver's help message instead of GnuDriver's. This patch eliminates the use of Options from the dispatcher. http://reviews.llvm.org/D17686 llvm-svn: 262190
* [modules] Prefer more complete array types.Vassil Vassilev2016-02-287-40/+66
| | | | | | | | | | | | | | If we import a module that has a complete array type and one that has an incomplete array type, the declaration found by name lookup might be the one with the incomplete type, possibly resulting in rejects-valid. Now, the name lookup prefers decls with a complete array types. Also, diagnose cases when the redecl chain has array bound, different from the merge candidate. Reviewed by Richard Smith. llvm-svn: 262189
* [PM] Appease mingw32's auto-import DLL build with minimal tweaks, with fix ↵NAKAMURA Takumi2016-02-2828-0/+60
| | | | | | | | for clang. char AnalysisBase::ID should be declared as extern and defined in one module. llvm-svn: 262188
* [mips] Remove unused function declarations from MipsRegisterInfo.h. NFC.Vasileios Kalintiris2016-02-281-10/+0
| | | | llvm-svn: 262187
* Revert r262185, "[PM] Appease mingw32's auto-import DLL build with minimal ↵NAKAMURA Takumi2016-02-2828-60/+0
| | | | | | | | tweaks." I'll rework soon. llvm-svn: 262186
* [PM] Appease mingw32's auto-import DLL build with minimal tweaks.NAKAMURA Takumi2016-02-2828-0/+60
| | | | | | char AnalysisBase::ID should be declared as extern and defined in one module. llvm-svn: 262185
* Delete more COFF and ELF bits from the old linker.Rafael Espindola2016-02-289-85/+7
| | | | llvm-svn: 262184
* Delete dead arch types.Rafael Espindola2016-02-281-1/+1
| | | | llvm-svn: 262183
* Delete a bit more ELF and COFF from the old linker.Rafael Espindola2016-02-281-9/+5
| | | | llvm-svn: 262182
* Delete more ELF bits from the old linker.Rafael Espindola2016-02-2827-964/+4
| | | | llvm-svn: 262181
* WebAssembly: fix testJF Bastien2016-02-281-10/+10
| | | | | | Operand order seems to have changed, the new one is nicer. llvm-svn: 262180
* WebAssembly: fix buildJF Bastien2016-02-282-3/+3
| | | | | | More API churn, experimental target got sad. llvm-svn: 262179
* Add ARM EHABI-related constants to unwind.h.Logan Chien2016-02-281-1/+18
| | | | | | | | | | Adds a number of constants, defined in the ARM EHABI spec, to the Clang lib/Headers/unwind.h header. This is prerequisite for landing http://reviews.llvm.org/D15781, as previously discussed there. Patch by Timon Van Overveldt. llvm-svn: 262178
* [CLANG] [AVX512] [BUILTIN] Adding PSLL{V|W|Wi}{128|256|512} builtinMichael Zuckerman2016-02-287-1/+496
| | | | | | Differential Revision: http://reviews.llvm.org/D17685 llvm-svn: 262177
* [AVX512][PSLLW ][PSLLV] Change imm8 to intMichael Zuckerman2016-02-284-21/+21
| | | | | | Differential Revision: http://reviews.llvm.org/D17684 llvm-svn: 262176
* ELF: Remove OutSection class and use a map instead.Rui Ueyama2016-02-282-24/+19
| | | | | | | It is easier to handle section filler data separately rather than merging with section names. llvm-svn: 262175
* Simplify. NFC.Rui Ueyama2016-02-281-6/+5
| | | | llvm-svn: 262174
* Remove dead header file.Rui Ueyama2016-02-281-39/+0
| | | | llvm-svn: 262173
* Remove obsolte TODOs. They are for the old gnu driver.Rui Ueyama2016-02-281-99/+0
| | | | llvm-svn: 262172
* Remove lld/Core/range.h.Rui Ueyama2016-02-288-988/+3
| | | | | | | | | | | IIUC, range was an experiment to see how N3350 would work in LLD. It turned out it didn't get traction, and it is basically duplicate of iterator_range in ADT. We have only two occurrences of range, and all of them are easily rewritten without it. http://reviews.llvm.org/D17687 llvm-svn: 262171
* Remove an empty TODO file.Rui Ueyama2016-02-281-2/+0
| | | | llvm-svn: 262170
* Remove unused #include.Rui Ueyama2016-02-281-1/+0
| | | | llvm-svn: 262169
* ELF: Add --help option.Rui Ueyama2016-02-285-2/+18
| | | | llvm-svn: 262168
* ELF: Add --version option.Rui Ueyama2016-02-286-11/+29
| | | | llvm-svn: 262167
* Remove dead code. This error type is for the old linker script reader.Rui Ueyama2016-02-282-55/+0
| | | | llvm-svn: 262166
* Remove dead header files.Rui Ueyama2016-02-282-1500/+0
| | | | llvm-svn: 262165
* Remove a few bits of elf from the old linker.Rafael Espindola2016-02-284-5/+0
| | | | llvm-svn: 262164
* Delete the old script parser.Rafael Espindola2016-02-2829-4166/+1
| | | | | | It was ELF specific. llvm-svn: 262163
* Test cleanupsXinliang David Li2016-02-283-6/+6
| | | | llvm-svn: 262162
* [PGO] add a test for available_externally functionsXinliang David Li2016-02-285-0/+78
| | | | llvm-svn: 262161
* Remove dead code.Rui Ueyama2016-02-283-6/+0
| | | | llvm-svn: 262160
* Rename elf2 to elf.Rafael Espindola2016-02-2830-142/+142
| | | | llvm-svn: 262159
* Remove the old ELF linker.Rafael Espindola2016-02-28779-60546/+3
| | | | | | I think it is clear by now that the new linker is viable. llvm-svn: 262158
* [PGO] Remove redundant counter copies for avail_extern functions.Xinliang David Li2016-02-272-3/+42
| | | | | | Differential Revision: http://reviews.llvm.org/D17654 llvm-svn: 262157
* Revert "Fix bug with register values byte order in expression evaluation."Todd Fiala2016-02-271-10/+3
| | | | | | | | | This reverts commit r262041, which caused asserts starting yesterday on the OS X testbot. See details in: https://llvm.org/bugs/show_bug.cgi?id=26758 llvm-svn: 262156
* ELF: Remove relSize function from ICF.cpp. NFC.Rui Ueyama2016-02-271-11/+3
| | | | llvm-svn: 262155
* CodeGen: Remove an iterator => pointer conversion, NFCDuncan P. N. Exon Smith2016-02-271-2/+2
| | | | | | Part of PR26753. llvm-svn: 262154
* AMDGPU: More bits of frame index are known to be zeroMatt Arsenault2016-02-276-42/+40
| | | | | | | | | | | | The maximum private allocation for the whole GPU is 4G, so the maximum possible index for a single workitem is the maximum size divided by the smallest granularity for a dispatch. This increases the number of known zero high bits, which enables more offset folding. The maximum private size per workitem with this is 128M but may be smaller still. llvm-svn: 262153
* CodeGen: Use MachineInstr& in InlineSpiller::rematerializeFor()Duncan P. N. Exon Smith2016-02-271-16/+15
| | | | | | | | InlineSpiller::rematerializeFor() never uses its parameter as an iterator, so take it by reference instead. This removes an implicit conversion from MachineBasicBlock::iterator to MachineInstr*. llvm-svn: 262152
* CodeGen: Update LiveIntervalAnalysis API to use MachineInstr&, NFCDuncan P. N. Exon Smith2016-02-277-45/+46
| | | | | | These parameters aren't expected to be null, so take them by reference. llvm-svn: 262151
* CodeGen: Change MachineInstr to use MachineInstr&, NFCDuncan P. N. Exon Smith2016-02-2714-36/+36
| | | | | | | | Change MachineInstr API to prefer MachineInstr& over MachineInstr* whenever the parameter is expected to be non-null. Slowly inching toward being able to fix PR26753. llvm-svn: 262149
* DAGCombiner: Don't unnecessarily swap operands in ReassociateOpsMatt Arsenault2016-02-275-11/+44
| | | | | | | | | | | | | | | | | | In the case where op = add, y = base_ptr, and x = offset, this transform: (op y, (op x, c1)) -> (op (op x, y), c1) breaks the canonical form of add by putting the base pointer in the second operand and the offset in the first. This fix is important for the R600 target, because for some address spaces the base pointer and the offset are stored in separate register classes. The old pattern caused the ISel code for matching addressing modes to put the base pointer and offset in the wrong register classes, which required no-trivial code transformations to fix. llvm-svn: 262148
* [UBSan] Fix isDerivedFromAtOffset on iOS ARM64Filipe Cabecinhas2016-02-276-1/+31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: iOS on ARM64 doesn't unique RTTI. Ref: clang's iOS64CXXABI::shouldRTTIBeUnique() Due to this, pointer-equality will not necessarily work in this architecture, across dylib boundaries. dynamic_cast<>() will (as expected) still work, since Apple ships with one prepared for this, but we can't rely on the type names being pointer-equal. I've limited the expensive strcmp check to the specific architecture which needs it. Example which triggers this bug: lib.h: struct X { virtual ~X() {} }; X *libCall(); lib.mm: X *libCall() { return new X; } prog.mm: int main() { X *px = libCall(); delete px; } Expected output: Nothing Actual output: <unknown>: runtime error: member call on address 0x00017001ef50 which does not point to an object of type 'X' 0x00017001ef50: note: object is of type 'X' 00 00 00 00 60 00 0f 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ^~~~~~~~~~~~~~~~~~~~~~~ vptr for ‘X’ Reviewers: kubabrecka, samsonov, eugenis, rsmith Subscribers: aemerson, llvm-commits, rengolin Differential Revision: http://reviews.llvm.org/D11502 llvm-svn: 262147
* CodeGen: Use MachineInstr& in HashMachineInstr, NFCDuncan P. N. Exon Smith2016-02-271-10/+10
| | | | | | Also update HashEndOfMBB to take MachineBasicBlock&. llvm-svn: 262146
* CodeGen: Use MachineInstr& in AntiDepBreaker API, NFCDuncan P. N. Exon Smith2016-02-276-91/+88
| | | | | | | | Take parameters as MachineInstr& instead of MachineInstr* in AntiDepBreaker API, since these are required to be non-null. No functionality change intended. Looking toward PR26753. llvm-svn: 262145
* CodeGen: Assert valid MI in AntiDepBreaker::UpdateDbgValueDuncan P. N. Exon Smith2016-02-271-1/+2
| | | | | | | This already assumes a valid MI, since it dereferences the MI in an assertion before checking for null. At an explicit assert. llvm-svn: 262144
* AArch64: Use MachineInstr& in guaranteesZeroRegInBlock(), NFCDuncan P. N. Exon Smith2016-02-271-6/+6
| | | | llvm-svn: 262143
* CodeGen: Update DFAPacketizer API to take MachineInstr&, NFCDuncan P. N. Exon Smith2016-02-276-98/+98
| | | | | | | | | In all but one case, change the DFAPacketizer API to take MachineInstr& instead of MachineInstr*. In DFAPacketizer::endPacket(), take MachineBasicBlock::iterator. Besides cleaning up the API, this is in search of PR26753. llvm-svn: 262142
* WIP: CodeGen: Use MachineInstr& in MachineInstrBundle.h, NFCDuncan P. N. Exon Smith2016-02-2720-58/+54
| | | | | | | | Update APIs in MachineInstrBundle.h to take and return MachineInstr& instead of MachineInstr* when the instruction cannot be null. Besides being a nice cleanup, this is tacking toward a fix for PR26753. llvm-svn: 262141
OpenPOWER on IntegriCloud