oota-llvm.git
11 years ago[APFloat] Expose isSmallest/isLargest as public methods.
Michael Gottesman [Wed, 19 Jun 2013 20:31:54 +0000 (20:31 +0000)]
[APFloat] Expose isSmallest/isLargest as public methods.

I have had several requests to expose these two methods as public for various
potential optimizations.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184345 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoAllow creation of single-byte MCAtoms.
Ahmed Bougacha [Wed, 19 Jun 2013 20:18:59 +0000 (20:18 +0000)]
Allow creation of single-byte MCAtoms.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184344 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoMove StructurizeCFG out of R600 to generic Transforms.
Matt Arsenault [Wed, 19 Jun 2013 20:18:24 +0000 (20:18 +0000)]
Move StructurizeCFG out of R600 to generic Transforms.

Register it with PassManager

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184343 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoLSR: Fix the parameters used to compute the scaling factor cost.
Quentin Colombet [Wed, 19 Jun 2013 19:59:41 +0000 (19:59 +0000)]
LSR: Fix the parameters used to compute the scaling factor cost.

Prior to this change, the considered addressing modes may be invalid since the
maximum and minimum offsets were not taking into account.
This was causing an assertion failure.

The added test case exercices that behavior.

<rdar://problem/14199725> Assertion failed: (CurScaleCost >= 0 && "Legal
addressing mode has an illegal cost!")

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184341 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoAdd unit test to test a trivial verifier check.
Bill Wendling [Wed, 19 Jun 2013 19:26:44 +0000 (19:26 +0000)]
Add unit test to test a trivial verifier check.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184338 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoAlways set the mode.
Rafael Espindola [Wed, 19 Jun 2013 19:17:15 +0000 (19:17 +0000)]
Always set the mode.

This matches GNU ar behavior. Also remove the now unused getFileStatus method.
Not sure how to add a test, it would have to run ls -l or something like that.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184337 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoRemove more uses of sys::Path.
Rafael Espindola [Wed, 19 Jun 2013 17:49:07 +0000 (17:49 +0000)]
Remove more uses of sys::Path.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184328 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoSLPVectorizer: handle scalars that are extracted from vectors (using ExtractElementInst).
Nadav Rotem [Wed, 19 Jun 2013 17:33:16 +0000 (17:33 +0000)]
SLPVectorizer: handle scalars that are extracted from vectors (using ExtractElementInst).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184325 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoRemove unused function.
Rafael Espindola [Wed, 19 Jun 2013 16:47:34 +0000 (16:47 +0000)]
Remove unused function.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184320 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoAnother attempt at fixing the bots.
Rafael Espindola [Wed, 19 Jun 2013 16:16:13 +0000 (16:16 +0000)]
Another attempt at fixing the bots.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184318 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoSLPVectorizer: start constructing chains at stores that are not power of two.
Nadav Rotem [Wed, 19 Jun 2013 15:57:29 +0000 (15:57 +0000)]
SLPVectorizer: start constructing chains at stores that are not power of two.
The type <3 x i8> is a common in graphics and we want to be able to vectorize it.

This changes accelerates bullet by 12% and 471_omnetpp by 5%.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184317 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoAttempt at fixing some bots.
Rafael Espindola [Wed, 19 Jun 2013 15:56:53 +0000 (15:56 +0000)]
Attempt at fixing some bots.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184316 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoReduce sys::Path usage in llvm-ar.
Rafael Espindola [Wed, 19 Jun 2013 15:45:37 +0000 (15:45 +0000)]
Reduce sys::Path usage in llvm-ar.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184315 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoRemove Path::getDirectoryContents.
Rafael Espindola [Wed, 19 Jun 2013 15:32:37 +0000 (15:32 +0000)]
Remove Path::getDirectoryContents.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184311 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoRemove the 'R' modifier.
Rafael Espindola [Wed, 19 Jun 2013 14:58:16 +0000 (14:58 +0000)]
Remove the 'R' modifier.

It is not present in GNU or OS X versions and doesn't make a lot of sense
for llvm-ar.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184306 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoRemove Path::isObjectFile.
Rafael Espindola [Wed, 19 Jun 2013 14:25:38 +0000 (14:25 +0000)]
Remove Path::isObjectFile.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184305 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoRemove Path::canExecute.
Rafael Espindola [Wed, 19 Jun 2013 13:25:31 +0000 (13:25 +0000)]
Remove Path::canExecute.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184298 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoThe RenderMethod field in RegisterOperand class sets the name of the method on the...
Vladimir Medic [Wed, 19 Jun 2013 10:14:36 +0000 (10:14 +0000)]
The RenderMethod field in RegisterOperand class sets the name of the method on the target specific operand to call to add the target specific operand to an MCInst. This patch defines RenderMethod for mips RegisterOperand classes and removes redundant code from MipsAsmParser.cpp

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184292 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoMachOUniversal.cpp: Fix abuse of Twine. It would be sufficient to use std::string...
NAKAMURA Takumi [Wed, 19 Jun 2013 09:55:05 +0000 (09:55 +0000)]
MachOUniversal.cpp: Fix abuse of Twine. It would be sufficient to use std::string instead.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184291 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoFixed comment typo that causes the given comment to actually make sense.
Michael Gottesman [Wed, 19 Jun 2013 07:34:21 +0000 (07:34 +0000)]
Fixed comment typo that causes the given comment to actually make sense.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184286 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoSLPVectorizer: vectorize compares and selects.
Nadav Rotem [Wed, 19 Jun 2013 05:49:52 +0000 (05:49 +0000)]
SLPVectorizer: vectorize compares and selects.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184282 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoDocument the return value and fix a typo.
Nadav Rotem [Wed, 19 Jun 2013 05:47:33 +0000 (05:47 +0000)]
Document the return value and fix a typo.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184281 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoTest commit access.
Wan Xiaofei [Wed, 19 Jun 2013 02:26:00 +0000 (02:26 +0000)]
Test commit access.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184278 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoRemove `using namespace` and use explicit qualification.
Sean Silva [Wed, 19 Jun 2013 01:13:28 +0000 (01:13 +0000)]
Remove `using namespace` and use explicit qualification.

There were only two places it was actually making anything shorter.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184273 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoRemove spurious space.
Sean Silva [Wed, 19 Jun 2013 01:10:58 +0000 (01:10 +0000)]
Remove spurious space.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184272 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoRemove unused parameter.
Sean Silva [Wed, 19 Jun 2013 01:10:11 +0000 (01:10 +0000)]
Remove unused parameter.

Not sure why we weren't catching this with -Wunused-parameter...

Spotted by inspection.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184271 91177308-0d34-0410-b5e6-96231b3b80d8

11 years ago[yaml2obj][ELF] Beef up this test a bit.
Sean Silva [Wed, 19 Jun 2013 00:55:32 +0000 (00:55 +0000)]
[yaml2obj][ELF] Beef up this test a bit.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184269 91177308-0d34-0410-b5e6-96231b3b80d8

11 years ago[yaml2obj][ELF] Support ELFOSABI_* enum.
Sean Silva [Wed, 19 Jun 2013 00:55:28 +0000 (00:55 +0000)]
[yaml2obj][ELF] Support ELFOSABI_* enum.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184268 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoThere is no ELF ABI version enum.
Sean Silva [Wed, 19 Jun 2013 00:55:23 +0000 (00:55 +0000)]
There is no ELF ABI version enum.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184267 91177308-0d34-0410-b5e6-96231b3b80d8

11 years ago[yaml2obj][ELF] Support st_info through `Binding` and `Type` YAML keys.
Sean Silva [Wed, 19 Jun 2013 00:11:59 +0000 (00:11 +0000)]
[yaml2obj][ELF] Support st_info through `Binding` and `Type` YAML keys.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184263 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoUse GetUnderlyingObject instead of custom function
Matt Arsenault [Tue, 18 Jun 2013 23:37:58 +0000 (23:37 +0000)]
Use GetUnderlyingObject instead of custom function

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184261 91177308-0d34-0410-b5e6-96231b3b80d8

11 years ago[yaml2obj][ELF] Don't monkeypatch the YAML sections.
Sean Silva [Tue, 18 Jun 2013 23:37:23 +0000 (23:37 +0000)]
[yaml2obj][ELF] Don't monkeypatch the YAML sections.

Previously, we would monkeypatch the vector of YAML::Section's in order
to ensure that the SHT_NULL entry is present. Now we just add it
unconditionally.

The proliferation of small numerical adjustments is beginning to
frighten me, but I can't think of a way having a single point of truth
for them without introducing a whole new layer  of data structures (i.e.
lots of code and complexity) between the YAML and binary ELF formats.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184260 91177308-0d34-0410-b5e6-96231b3b80d8

11 years ago[yaml2obj][ELF] Ensure STN_UNDEF entry is present.
Sean Silva [Tue, 18 Jun 2013 23:19:17 +0000 (23:19 +0000)]
[yaml2obj][ELF] Ensure STN_UNDEF entry is present.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184258 91177308-0d34-0410-b5e6-96231b3b80d8

11 years ago[yaml2obj][ELF] Rudimentary symbol table support.
Sean Silva [Tue, 18 Jun 2013 23:14:03 +0000 (23:14 +0000)]
[yaml2obj][ELF] Rudimentary symbol table support.

Currently, we only output the name.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184255 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoSmall correction to unordered memory code generation of ARM LDRD
JF Bastien [Tue, 18 Jun 2013 23:07:16 +0000 (23:07 +0000)]
Small correction to unordered memory code generation of ARM LDRD

The information was correct pre-LPAE.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184253 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoIdentify me on IRC.
Bill Wendling [Tue, 18 Jun 2013 22:09:36 +0000 (22:09 +0000)]
Identify me on IRC.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184247 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoARM: Add optional datatype suffix to NEON mvn asm syntax.
Jim Grosbach [Tue, 18 Jun 2013 21:49:21 +0000 (21:49 +0000)]
ARM: Add optional datatype suffix to NEON mvn asm syntax.

rdar://14194152

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184244 91177308-0d34-0410-b5e6-96231b3b80d8

11 years ago[yaml2obj][ELF] Add dummy .strtab section.
Sean Silva [Tue, 18 Jun 2013 21:37:50 +0000 (21:37 +0000)]
[yaml2obj][ELF] Add dummy .strtab section.

This will be needed later for holding symbol names, due to the libObject
issue mentioned in the commit message of r184161.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184242 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoWe want a string representation of the attribute, not the kind as a string.
Bill Wendling [Tue, 18 Jun 2013 21:27:00 +0000 (21:27 +0000)]
We want a string representation of the attribute, not the kind as a string.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184239 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoAArch64: remove accidental test output file.
Tim Northover [Tue, 18 Jun 2013 21:16:53 +0000 (21:16 +0000)]
AArch64: remove accidental test output file.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184236 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoRemove Path::canWrite.
Rafael Espindola [Tue, 18 Jun 2013 21:10:03 +0000 (21:10 +0000)]
Remove Path::canWrite.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184235 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoAdd a can_write function to PathV2.
Rafael Espindola [Tue, 18 Jun 2013 20:56:38 +0000 (20:56 +0000)]
Add a can_write function to PathV2.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184233 91177308-0d34-0410-b5e6-96231b3b80d8

11 years ago[ARMTargetLowering] ARMISD::{SUB,ADD}{C,E} second result is a boolean implying that...
Michael Gottesman [Tue, 18 Jun 2013 20:49:45 +0000 (20:49 +0000)]
[ARMTargetLowering] ARMISD::{SUB,ADD}{C,E} second result is a boolean implying that upper bits are always 0.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184231 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoConverted an overly aggressive assert to a conditional check in AddCombineTo64bitMLAL.
Michael Gottesman [Tue, 18 Jun 2013 20:49:40 +0000 (20:49 +0000)]
Converted an overly aggressive assert to a conditional check in AddCombineTo64bitMLAL.

Said assert assumes that ADDC will always have a glue node as its second
argument and is checked before we even know that we are actually performing the
relevant MLAL optimization. This is incorrect since on ARM we *CAN* codegen ADDC
with a use list based second argument. Thus to have both effects, I converted
the assert to a conditional check which if it fails we do not perform the
optimization.

In terms of tests I can not produce an ADDC from the IR level until I get in my
multiprecision optimization patch which is forthcoming. The tests for said patch
would cause this assert to fail implying that said tests will provide the
relevant tests.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184230 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoRemove unused Path::canRead.
Rafael Espindola [Tue, 18 Jun 2013 20:42:25 +0000 (20:42 +0000)]
Remove unused Path::canRead.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184229 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoFix 80 col violation.
Nadav Rotem [Tue, 18 Jun 2013 20:41:52 +0000 (20:41 +0000)]
Fix 80 col violation.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184228 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoChange the arm assembler to support this from the v7c spec:
Kevin Enderby [Tue, 18 Jun 2013 20:19:24 +0000 (20:19 +0000)]
Change the arm assembler to support this from the v7c spec:
"When assembling to the ARM instruction set, the .N qualifier produces
an assembler error and the .W qualifier has no effect."

In the pre-matcher handler in the asm parser the ".w" (wide) qualifier
when in ARM mode is now discarded. And an error message is now
produced when the ".n" (narrow) qualifier is used in ARM mode.

Test cases for these were added.

rdar://14064574

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184224 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoDuring SelectionDAG building explicitly set a node to constant zero when the
Quentin Colombet [Tue, 18 Jun 2013 20:14:39 +0000 (20:14 +0000)]
During SelectionDAG building explicitly set a node to constant zero when the
value is zero.
This allows optmizations to kick in more easily.
Fix some test cases so that they remain meaningful (i.e., not completely dead
coded) when optimizations apply.

<rdar://problem/14096009> superfluous multiply by high part of zero-extended
value.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184222 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoMips ELF: Mark object file as ABI compliant
Jack Carter [Tue, 18 Jun 2013 19:47:15 +0000 (19:47 +0000)]
Mips ELF: Mark object file as ABI compliant

When producing objects that are abi compliant we are
marking neither the object file nor the assembly file
correctly and thus generate warnings.

We need to set the EF_CPIC flag in the ELF header when
generating direct object.

Note that the warning is only generated when compiling without PIC.

When compiling with clang the warning will be suppressed by supplying:

 -Wa,-mno-shared -Wa,-call_nonpic

Also the following directive should also be added:

.option pic0

when compiling without PIC,  This eliminates the need for supplying:

  -mno-shared -call_nonpic

on the assembler command line.

Patch by Douglas Gilmore

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184220 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoRemove uniqueID from PathV1.h.
Rafael Espindola [Tue, 18 Jun 2013 19:46:19 +0000 (19:46 +0000)]
Remove uniqueID from PathV1.h.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184219 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoAdd a GetUniqueID that will replace the uniqueID of PathV1.h.
Rafael Espindola [Tue, 18 Jun 2013 19:34:49 +0000 (19:34 +0000)]
Add a GetUniqueID that will replace the uniqueID of PathV1.h.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184217 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoReduce indentation.
David Blaikie [Tue, 18 Jun 2013 18:03:17 +0000 (18:03 +0000)]
Reduce indentation.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184213 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoConvert most uses of PathV1.h in ToolRunner.cpp.
Rafael Espindola [Tue, 18 Jun 2013 17:20:08 +0000 (17:20 +0000)]
Convert most uses of PathV1.h in ToolRunner.cpp.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184210 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoAdd support for encoding the HLE XACQUIRE and XRELEASE prefixes.
Stefanus Du Toit [Tue, 18 Jun 2013 17:08:10 +0000 (17:08 +0000)]
Add support for encoding the HLE XACQUIRE and XRELEASE prefixes.

For decoding, keep the current behavior of always decoding these as their REP
versions. In the future, this could be improved to recognize the cases where
these behave as XACQUIRE and XRELEASE and decode them as such.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184207 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoAdd a version of unique_file that return just the file name.
Rafael Espindola [Tue, 18 Jun 2013 17:01:00 +0000 (17:01 +0000)]
Add a version of unique_file that return just the file name.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184206 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoReturn a std::string from PrependMainExecutablePath.
Rafael Espindola [Tue, 18 Jun 2013 16:47:55 +0000 (16:47 +0000)]
Return a std::string from PrependMainExecutablePath.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184204 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoRemove PathV1.h use from BugDriver.cpp.
Rafael Espindola [Tue, 18 Jun 2013 16:21:54 +0000 (16:21 +0000)]
Remove PathV1.h use from BugDriver.cpp.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184203 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoRemove use of PathV1.h from ExecutionDriver.cpp.
Rafael Espindola [Tue, 18 Jun 2013 16:14:09 +0000 (16:14 +0000)]
Remove use of PathV1.h from ExecutionDriver.cpp.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184202 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoScan the successor blocks and use the PHI nodes as a hint for possible chain roots.
Nadav Rotem [Tue, 18 Jun 2013 15:58:05 +0000 (15:58 +0000)]
Scan the successor blocks and use the PHI nodes as a hint for possible chain roots.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184201 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoAdd a return value to make this function more useful.
Nadav Rotem [Tue, 18 Jun 2013 15:57:12 +0000 (15:57 +0000)]
Add a return value to make this function more useful.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184200 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoRemove usage of PathV1.h from OptimizerDriver.cpp.
Rafael Espindola [Tue, 18 Jun 2013 15:54:13 +0000 (15:54 +0000)]
Remove usage of PathV1.h from OptimizerDriver.cpp.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184198 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoConvert some uses of eraseFromDisk.
Rafael Espindola [Tue, 18 Jun 2013 15:33:18 +0000 (15:33 +0000)]
Convert some uses of eraseFromDisk.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184196 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoDon't use PathV1.h in tools/bugpoint/Miscompilation.cpp.
Rafael Espindola [Tue, 18 Jun 2013 15:29:32 +0000 (15:29 +0000)]
Don't use PathV1.h in tools/bugpoint/Miscompilation.cpp.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184193 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoBasic support for parsing Mach-O universal binaries in LLVMObject library
Alexey Samsonov [Tue, 18 Jun 2013 15:03:28 +0000 (15:03 +0000)]
Basic support for parsing Mach-O universal binaries in LLVMObject library

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184191 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoDon't convert object_error's enum to and from int.
Rafael Espindola [Tue, 18 Jun 2013 13:30:31 +0000 (13:30 +0000)]
Don't convert object_error's enum to and from int.

This allows the compiler to see the enum and warn about it. While in here,
fix a switch to not use a default and fix style violations.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184186 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoARM: fix literal load with positive offset encoding
Amaury de la Vieuville [Tue, 18 Jun 2013 08:13:05 +0000 (08:13 +0000)]
ARM: fix literal load with positive offset encoding

When using a positive offset, literal loads where encoded
as if it was negative, because:
- The sign bit was not assigned to an operand
- The addrmode_imm12 operand was not encoding the sign bit correctly

This patch also makes the assembler look at the .w/.n specifier for
loads.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184182 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoARM: add operands pre-writeback variants when needed
Amaury de la Vieuville [Tue, 18 Jun 2013 08:12:51 +0000 (08:12 +0000)]
ARM: add operands pre-writeback variants when needed

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184181 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoARM: fix thumb literal loads decoding
Amaury de la Vieuville [Tue, 18 Jun 2013 08:03:06 +0000 (08:03 +0000)]
ARM: fix thumb literal loads decoding

This fixes two previous issues:
- Negative offsets were not correctly disassembled
- The decoded opcodes were not the right one

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184180 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoARM: thumb stores cannot use PC as dest register
Amaury de la Vieuville [Tue, 18 Jun 2013 08:02:56 +0000 (08:02 +0000)]
ARM: thumb stores cannot use PC as dest register

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184179 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoHopefully fix the MSVS build after r184105
Timur Iskhodzhanov [Tue, 18 Jun 2013 07:57:22 +0000 (07:57 +0000)]
Hopefully fix the MSVS build after r184105

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184178 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoUse pointers to the MCAsmInfo and MCRegInfo.
Bill Wendling [Tue, 18 Jun 2013 07:20:20 +0000 (07:20 +0000)]
Use pointers to the MCAsmInfo and MCRegInfo.

Someone may want to do something crazy, like replace these objects if they
change or something.

No functionality change intended.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184175 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoFix nondeterminism in .gcno file generation.
Nick Lewycky [Tue, 18 Jun 2013 06:38:21 +0000 (06:38 +0000)]
Fix nondeterminism in .gcno file generation.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184174 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoRemove dead prototype.
Bill Wendling [Tue, 18 Jun 2013 06:24:14 +0000 (06:24 +0000)]
Remove dead prototype.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184173 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoSimplify some of the code. No functionality change.
Bill Wendling [Tue, 18 Jun 2013 06:07:26 +0000 (06:07 +0000)]
Simplify some of the code. No functionality change.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184172 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoremove some @deprecated markers: LLVM APIs aren't deprecated, they are removed when...
Chris Lattner [Tue, 18 Jun 2013 04:57:25 +0000 (04:57 +0000)]
remove some @deprecated markers: LLVM APIs aren't deprecated, they are removed when obsolete.
These APIs are still used, and the constant APIs are actually really important.

Removing these makes -Wdocumentation more useful.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184170 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoBuild Apple's llvmCore with --disable-zlib. <rdar://problem/14182316>
Bob Wilson [Tue, 18 Jun 2013 01:22:29 +0000 (01:22 +0000)]
Build Apple's llvmCore with --disable-zlib. <rdar://problem/14182316>

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184164 91177308-0d34-0410-b5e6-96231b3b80d8

11 years ago[yaml2obj][ELF] Factor out string table section creation.
Sean Silva [Tue, 18 Jun 2013 01:11:27 +0000 (01:11 +0000)]
[yaml2obj][ELF] Factor out string table section creation.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184162 91177308-0d34-0410-b5e6-96231b3b80d8

11 years ago[yaml2obj][ELF] Refer specifically to the section header string table.
Sean Silva [Tue, 18 Jun 2013 01:11:24 +0000 (01:11 +0000)]
[yaml2obj][ELF] Refer specifically to the section header string table.

A bug in libObject will cause it to assert() if a symbol table's string
table and the section header string table are the same section, so we
need to ensure that we emit two different string tables (among other
things). The problematic code is the hardcoded usage of ".strtab"
(`dot_strtab_sec`) for looking up symbol names in
ELFObjectFile<ELFT>::getSymbolName.

I discussed this with Michael, and he has some local improvements to the
ELF code in libObject that, among other things, should fix our handling
of this scenario.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184161 91177308-0d34-0410-b5e6-96231b3b80d8

11 years ago[yaml2obj][ELF] Ensure more fields are zero'd.
Sean Silva [Tue, 18 Jun 2013 01:11:21 +0000 (01:11 +0000)]
[yaml2obj][ELF] Ensure more fields are zero'd.

I was spotting garbage in the output. I'd like to just zero the entire
ELFYAML::Section to be sure, but it contains non-POD types. (I'm also
trying to avoid bloating the ELFYAML::Foo classes with a bunch of
constructor code).

No test, since this is by its very nature unpredictable. I'm pretty sure
that one of the sanitizers would catch it immediately though.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184160 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoFix the build with gcc 4.7 and -std=c++11.
Rafael Espindola [Mon, 17 Jun 2013 22:24:06 +0000 (22:24 +0000)]
Fix the build with gcc 4.7 and -std=c++11.

The error message was:

/home/espindola/llvm/llvm/tools/gold/gold-plugin.cpp: In function ‘ld_plugin_status cleanup_hook()’:
/home/espindola/llvm/llvm/tools/gold/gold-plugin.cpp:461:30: error: cannot pass objects of non-trivially-copyable type ‘std::string {aka class std::basic_string<char>}’ through ‘...’

I will check if this was a clang or gcc issue.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184138 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoConvert two uses of eraseFromDisk.
Rafael Espindola [Mon, 17 Jun 2013 21:50:28 +0000 (21:50 +0000)]
Convert two uses of eraseFromDisk.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184136 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoMI-Sched: handle ReadAdvance latencies as used by Swift.
Andrew Trick [Mon, 17 Jun 2013 21:45:18 +0000 (21:45 +0000)]
MI-Sched: handle ReadAdvance latencies as used by Swift.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184135 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoReenable, improve, and add MI-Sched unit tests.
Andrew Trick [Mon, 17 Jun 2013 21:45:16 +0000 (21:45 +0000)]
Reenable, improve, and add MI-Sched unit tests.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184134 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoGive RegMax higher priority.
Andrew Trick [Mon, 17 Jun 2013 21:45:13 +0000 (21:45 +0000)]
Give RegMax higher priority.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184133 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoRemove compareRPDelta.
Andrew Trick [Mon, 17 Jun 2013 21:45:11 +0000 (21:45 +0000)]
Remove compareRPDelta.

A complex, expensive heuristic with little value in the current design.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184132 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoMI Sched: fix a typo in RegPressure heuristics.
Andrew Trick [Mon, 17 Jun 2013 21:45:09 +0000 (21:45 +0000)]
MI Sched: fix a typo in RegPressure heuristics.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184131 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoMI-Sched: Remove another heuristic that is sensitive to queue order.
Andrew Trick [Mon, 17 Jun 2013 21:45:07 +0000 (21:45 +0000)]
MI-Sched: Remove another heuristic that is sensitive to queue order.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184130 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoMI-Sched: Track multiple candidates with the same priority level.
Andrew Trick [Mon, 17 Jun 2013 21:45:05 +0000 (21:45 +0000)]
MI-Sched: Track multiple candidates with the same priority level.

This eliminates the MultiPressure scheduling "reason". It was
sensitive to queue order. We don't like being sensitive to queue
order.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184129 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoRemove usage of PathV1.h in FindBugs.cpp.
Rafael Espindola [Mon, 17 Jun 2013 20:48:36 +0000 (20:48 +0000)]
Remove usage of PathV1.h in FindBugs.cpp.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184122 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoDirectly access objects which may change during compilation.
Bill Wendling [Mon, 17 Jun 2013 20:41:25 +0000 (20:41 +0000)]
Directly access objects which may change during compilation.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184121 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoReapply r183985 now that the missing check was added to PathV2.
Rafael Espindola [Mon, 17 Jun 2013 20:37:56 +0000 (20:37 +0000)]
Reapply r183985 now that the missing check was added to PathV2.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184120 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoOnly delete regular files and directories.
Rafael Espindola [Mon, 17 Jun 2013 20:35:51 +0000 (20:35 +0000)]
Only delete regular files and directories.

This ports a missing feature from PathV1.h. I am not sure how to test this
with the regular infrastructure, but an Apple bot should check this when
r183985 is reapplied.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184119 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoR600: PV stores Reg id, not index
Vincent Lejeune [Mon, 17 Jun 2013 20:16:40 +0000 (20:16 +0000)]
R600: PV stores Reg id, not index

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184117 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoR600: Properly set COUNT_3 bit in TEX clause initiating inst for pre EG gen.
Vincent Lejeune [Mon, 17 Jun 2013 20:16:26 +0000 (20:16 +0000)]
R600: Properly set COUNT_3 bit in TEX clause initiating inst for pre EG gen.

Fixes rv7x0 bug in Heaven reported here:
https://bugs.freedesktop.org/show_bug.cgi?id=64257

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184116 91177308-0d34-0410-b5e6-96231b3b80d8

11 years ago[yaml2obj][ELF] Exit with error status on error.
Sean Silva [Mon, 17 Jun 2013 20:14:59 +0000 (20:14 +0000)]
[yaml2obj][ELF] Exit with error status on error.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184115 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoRevert "Remove a use of PathV1.h."
Rafael Espindola [Mon, 17 Jun 2013 19:54:17 +0000 (19:54 +0000)]
Revert "Remove a use of PathV1.h."

This reverts commit r183985.

We were missing the checks for not deleting things like /dev/null.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184111 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoDon't use PathV1.h in CrashDebugger.cpp.
Rafael Espindola [Mon, 17 Jun 2013 19:33:18 +0000 (19:33 +0000)]
Don't use PathV1.h in CrashDebugger.cpp.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184109 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoDon't use PathV1.h in ToolRunner.h.
Rafael Espindola [Mon, 17 Jun 2013 19:21:38 +0000 (19:21 +0000)]
Don't use PathV1.h in ToolRunner.h.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184107 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoRemove CBE related code.
Rafael Espindola [Mon, 17 Jun 2013 19:03:02 +0000 (19:03 +0000)]
Remove CBE related code.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184106 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoSwitch spill weights from a basic loop depth estimation to BlockFrequencyInfo.
Benjamin Kramer [Mon, 17 Jun 2013 19:00:36 +0000 (19:00 +0000)]
Switch spill weights from a basic loop depth estimation to BlockFrequencyInfo.

The main advantages here are way better heuristics, taking into account not
just loop depth but also __builtin_expect and other static heuristics and will
eventually learn how to use profile info. Most of the work in this patch is
pushing the MachineBlockFrequencyInfo analysis into the right places.

This is good for a 5% speedup on zlib's deflate (x86_64), there were some very
unfortunate spilling decisions in its hottest loop in longest_match(). Other
benchmarks I tried were mostly neutral.

This changes register allocation in subtle ways, update the tests for it.
2012-02-20-MachineCPBug.ll was deleted as it's very fragile and the instruction
it looked for was gone already (but the FileCheck pattern picked up unrelated
stuff).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184105 91177308-0d34-0410-b5e6-96231b3b80d8