Commit Graph

85561 Commits

Author SHA1 Message Date
NAKAMURA Takumi 54d2274914 [CMake] add_lit_testsuite: EXCLUDE_FROM_ALL excludes the test ${target} out of check-all.
llvm-svn: 165618
2012-10-10 13:32:55 +00:00
Stepan Dyatkovskiy 283baa0027 Fix for LDRB instruction:
SDNode for LDRB_POST_IMM is invalid: number of registers added to SDNode fewer
that described in .td.

7 ops is needed, but SDNode with only 6 is created.

In more details:
In ARMInstrInfo.td, in multiclass AI2_ldridx, in definition _POST_IMM, offset
operand is defined as am2offset_imm. am2offset_imm is complex parameter type,
and actually it consists from dummy register and imm itself. As I understood
trick with dummy reg was made for AsmParser. In ARMISelLowering.cpp, this dummy
register was not added to SDNode, and it cause crash in Peephole Optimizer pass.

The problem fixed by setting up additional dummy reg when emitting
LDRB_POST_IMM instruction.

llvm-svn: 165617
2012-10-10 11:43:40 +00:00
Stepan Dyatkovskiy f13dbb8e24 Issue description:
SchedulerDAGInstrs::buildSchedGraph ignores dependencies between FixedStack
objects and byval parameters. So loading byval parameters from stack may be
inserted *before* it will be stored, since these operations are treated as
independent.

Fix:
Currently ARMTargetLowering::LowerFormalArguments saves byval registers with
FixedStack MachinePointerInfo. To fix the problem we need to store byval
registers with MachinePointerInfo referenced to first the "byval" parameter.

Also commit adds two new fields to the InputArg structure: Function's argument
index and InputArg's part offset in bytes relative to the start position of
Function's argument. E.g.: If function's argument is 128 bit width and it was
splitted onto 32 bit regs, then we got 4 InputArg structs with same arg index,
but different offset values. 

llvm-svn: 165616
2012-10-10 11:37:36 +00:00
Bill Wendling 7f1c5472b5 Cleanup. Get rid of now dead code.
llvm-svn: 165613
2012-10-10 08:03:34 +00:00
Bill Wendling bbcdf4e2a5 Remove the final bits of Attributes being declared in the Attribute
namespace. Use the attribute's enum value instead. No functionality change
intended.

llvm-svn: 165610
2012-10-10 07:36:45 +00:00
Lang Hames 05fee08dfa My earlier "fix" for PBQP (see r165201) was incorrect. The real issue was that
checkRegMaskInterference only initializes the bitmask on the first interference.

This fixes PR14027 and (re)fixes PR13945.

llvm-svn: 165608
2012-10-10 06:39:48 +00:00
Bill Wendling ed42e799dc Pass into the AttributeWithIndex::get method an ArrayRef of attribute
enums. These are then created via the correct Attributes creation method.

llvm-svn: 165607
2012-10-10 06:13:42 +00:00
Andrew Trick c334bd4577 misched: fall-back to a target hook for instr bundles.
llvm-svn: 165606
2012-10-10 05:43:18 +00:00
Andrew Trick 2a06d4753a TODO comment
llvm-svn: 165605
2012-10-10 05:43:16 +00:00
Andrew Trick d0b9c44583 TableGen subtarget emitter cleanup.
Consistently evaluate Aliases and Sequences recursively.

llvm-svn: 165604
2012-10-10 05:43:13 +00:00
Andrew Trick dd79f0fcea misched: Use the TargetSchedModel interface wherever possible.
Allows the new machine model to be used for NumMicroOps and OutputLatency.

Allows the HazardRecognizer to be disabled along with itineraries.

llvm-svn: 165603
2012-10-10 05:43:09 +00:00
Andrew Trick 8e9c1d8998 misched: Generate IsBuffered flag for machine resources.
llvm-svn: 165602
2012-10-10 05:43:04 +00:00
Andrew Trick d9296ec2b6 whitespace
llvm-svn: 165601
2012-10-10 05:43:01 +00:00
Bill Wendling ff4ddaa9d2 Place temporary LTO files into their own subdirectory.
llvm-svn: 165599
2012-10-10 05:29:15 +00:00
Bill Wendling f319e9905f Have 'addFnAttr' take the attribute enum value. Then have it build the attribute object and add it appropriately. No functionality change.
llvm-svn: 165595
2012-10-10 03:12:49 +00:00
Craig Topper 38b25bab29 Test case for r165480.
llvm-svn: 165594
2012-10-10 02:54:23 +00:00
Reed Kotler 0f2e44a1cb Reorder some parts of the td file to by in alphabetical order
llvm-svn: 165590
2012-10-10 01:58:16 +00:00
Andrew Kaylor 10bc2b456a Adding comments to clarify the reason for non-standard style in these files.
Patch committed on behalf of Kirill Uhanov

llvm-svn: 165589
2012-10-10 01:48:52 +00:00
Andrew Kaylor b96a320a2e Cosmetic changes
llvm-svn: 165588
2012-10-10 01:45:52 +00:00
Andrew Kaylor 3f31fa05d5 This patch adds new functions to the SectionRef and ObjectFile interfaces to determine whether or not a section is meant to be read-only. These functions will be used by the MCJIT RuntimeDyld to give hints to the memory manager during the object loading process in a future patch.
Patch by Ashok Thirumurthi.

llvm-svn: 165586
2012-10-10 01:41:33 +00:00
Akira Hatanaka 9c8dcfc73a Implement MipsTargetLowering::CanLowerReturn.
Patch by Sasa Stankovic. 

llvm-svn: 165585
2012-10-10 01:27:09 +00:00
Bob Wilson 8fd10ef0d6 Revert "Use a special path to place the .o files in."
This reverts commit 165428 in an attempt to get our buildbots going.

llvm-svn: 165574
2012-10-09 23:59:01 +00:00
Michael Liao 4aebf0ec3e Add extra vim swap file pattern
llvm-svn: 165569
2012-10-09 23:48:34 +00:00
Evan Cheng 3903e1be01 When expanding atomic load arith instructions, do not lose target flags. rdar://12453106
llvm-svn: 165568
2012-10-09 23:48:33 +00:00
Andrew Trick 780fae8cd6 misched: Add computeInstrLatency to TargetSchedModel.
llvm-svn: 165566
2012-10-09 23:44:32 +00:00
Andrew Trick 3b8085db78 misched: Doxument the TargetSchedule API.
llvm-svn: 165565
2012-10-09 23:44:29 +00:00
Andrew Trick cfcf5202a1 misched: Allow flags to disable hasInstrSchedModel/hasInstrItineraries for external users of TargetSchedule.
llvm-svn: 165564
2012-10-09 23:44:26 +00:00
Andrew Trick caf1dc7867 misched: Remove LoopDependencies heuristic.
This wasn't contributing anything significant to postRA heuristics except compile time (by my measurements) and will be replaced by a more general heuristic for cross-region dependencies within the scheduler itself.

llvm-svn: 165563
2012-10-09 23:44:23 +00:00
Bill Wendling 80193d4bb0 Use the attribute builder to add attributes to call/invoke instruction. No functionality change intended.
llvm-svn: 165562
2012-10-09 23:40:31 +00:00
Jack Carter 543fdf8544 Initial assembler implementation of Mips load address macro
This patch provides initial implementation of load address 
macro instruction for Mips. We have implemented two kinds 
of expansions with their variations depending on the size 
of immediate operand:

 1) load address with immediate value directly:
    * la d,j => addiu d,$zero,j   (for -32768 <= j <= 65535)
    * la d,j => lui d,hi16(j)
                ori d,d,lo16(j)   (for any other 32 bit value of j)

 2) load load address with register offset value
    * la d,j(s) => addiu d,s,j     (for -32768 <= j <= 65535)
    * la d,j(s) => lui d,hi16(j)   (for any other 32 bit value of j)
                   ori d,d,lo16(j)
                   addu d,d,s

This patch does not cover the case when the address is loaded 
from the value of the label or function.

Contributer: Vladimir Medic
llvm-svn: 165561
2012-10-09 23:29:45 +00:00
Douglas Gregor 79258ca2cc Add count() method to MapVector
llvm-svn: 165559
2012-10-09 23:02:47 +00:00
Micah Villmow 7edfe5f6b2 Add in some interfaces that will allow easier access to the pointer address space.
llvm-svn: 165554
2012-10-09 22:27:29 +00:00
Bill Wendling ff758fbd45 Use the attribute enums to query if a function has an attribute.
llvm-svn: 165551
2012-10-09 21:49:51 +00:00
Bill Wendling 8ccd6ca199 Use the attribute enums to query if a parameter has an attribute.
llvm-svn: 165550
2012-10-09 21:38:14 +00:00
Bill Wendling b3723341f3 Revert r165547 to fix build.
llvm-svn: 165548
2012-10-09 20:56:48 +00:00
Bill Wendling 5abc0ef174 Use a single location for calculating the alignments.
llvm-svn: 165547
2012-10-09 20:55:16 +00:00
Sean Silva 2f7bf41091 tblgen: Rename handleDependencies -> createDependencyFile
llvm-svn: 165544
2012-10-09 20:39:28 +00:00
Bill Wendling a5661eb300 Remove this now unused variable macro.
llvm-svn: 165543
2012-10-09 20:35:11 +00:00
Sean Silva 0cd3536505 tblgen: Move dependency file output to a separate function.
This keeps it out of the main flow of TableGenMain.

llvm-svn: 165542
2012-10-09 20:29:03 +00:00
Bill Wendling 4caad41f1e Use appropriate method calls to get the alignment value.
llvm-svn: 165541
2012-10-09 20:28:54 +00:00
Chad Rosier 126d0b8c4d Whitespace.
llvm-svn: 165540
2012-10-09 20:15:02 +00:00
Bill Wendling 9864a6557e Inline the checks for mutually exclusive attributes since they're used in only one module.
llvm-svn: 165539
2012-10-09 20:11:19 +00:00
Rafael Espindola be5613c0a7 Enable response files in all tools. Patch by Liu, Yaxun (Sam). I have simplified
the test.

llvm-svn: 165535
2012-10-09 19:52:10 +00:00
Bill Wendling 7c04e04a75 Move the 'FunctionOnly' attributes thingy inside of the Attributes class.
llvm-svn: 165530
2012-10-09 19:01:18 +00:00
Douglas Gregor ab88e86dd0 Not everyone uses C++11, apparently
llvm-svn: 165517
2012-10-09 17:51:56 +00:00
Douglas Gregor 62692ce7f3 Allow MapVector clients to specify the map and vector types, and add a
clear() method.

llvm-svn: 165514
2012-10-09 17:49:42 +00:00
Michael Ilseman 7eaf29c61e More descriptive, doxygen-ed comments
llvm-svn: 165512
2012-10-09 17:05:59 +00:00
Sean Silva 94c7604832 tblgen: Remove pointless method call.
llvm-svn: 165511
2012-10-09 17:03:11 +00:00
Michael Ilseman c93cffb590 New EarlyCSE tests for CSE-ing across commutativity.
llvm-svn: 165510
2012-10-09 16:58:13 +00:00
Michael Ilseman 336cb79fdf Update EarlyCSE's SimpleValues to use Hashing.h for their hashes. Expanded the hashing and equality to allow for equality modulo commutativity for binary ops, and comparisons with swapping of predicates.
llvm-svn: 165509
2012-10-09 16:57:38 +00:00