oota-llvm.git
15 years agoUse ARMFunctionInfo to track number of constpool entries and jumptables.
Evan Cheng [Sat, 8 Nov 2008 00:51:41 +0000 (00:51 +0000)]
Use ARMFunctionInfo to track number of constpool entries and jumptables.

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

15 years agoGenerated code for generic expansion of SETUGT etc.
Dale Johannesen [Sat, 8 Nov 2008 00:49:19 +0000 (00:49 +0000)]
Generated code for generic expansion of SETUGT etc.
is noticeably worse than previous PPC-specific code.
Since the latter was also wrong in some cases and
correctness is more important than efficiency, I'm
disabling this test temporarily while I fix it.

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

15 years agoXfail an incorrect test.
Dale Johannesen [Sat, 8 Nov 2008 00:40:24 +0000 (00:40 +0000)]
Xfail an incorrect test.

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

15 years agoMake testb optimization work on big-endian targets.
Dale Johannesen [Sat, 8 Nov 2008 00:01:16 +0000 (00:01 +0000)]
Make testb optimization work on big-endian targets.

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

15 years agoMore code clean up.
Evan Cheng [Fri, 7 Nov 2008 22:57:53 +0000 (22:57 +0000)]
More code clean up.

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

15 years agoMake FP tests requiring two compares work on PPC (PR 642).
Dale Johannesen [Fri, 7 Nov 2008 22:54:33 +0000 (22:54 +0000)]
Make FP tests requiring two compares work on PPC (PR 642).
This is Chris' patch from the PR, modified to realize that
SETUGT/SETULT occur legitimately with integers, plus
two fixes in LegalizeDAG to pass a valid result type into
LegalizeSetCC.  The argument of TLI.getSetCCResultType is
ignored on PPC, but I think I'm following usage elsewhere.

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

15 years agoGet PIC jump table working.
Evan Cheng [Fri, 7 Nov 2008 22:30:53 +0000 (22:30 +0000)]
Get PIC jump table working.

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

15 years agoMore debug output.
Evan Cheng [Fri, 7 Nov 2008 22:30:29 +0000 (22:30 +0000)]
More debug output.

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

15 years agoMake tablegen print out a nice error message for a const char*
Dan Gohman [Fri, 7 Nov 2008 21:01:13 +0000 (21:01 +0000)]
Make tablegen print out a nice error message for a const char*
exception, like it does for a std::string exception.

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

15 years agoDocument the acronym RAUW. Patch by Jonathan Brandmeyer!
Dan Gohman [Fri, 7 Nov 2008 20:29:17 +0000 (20:29 +0000)]
Document the acronym RAUW. Patch by Jonathan Brandmeyer!

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

15 years agoSign-extend rather than zero-extend when promoting
Duncan Sands [Fri, 7 Nov 2008 20:13:04 +0000 (20:13 +0000)]
Sign-extend rather than zero-extend when promoting
the condition for a BRCOND, according to what is
returned by getSetCCResultContents.  Since all
targets return the same thing (ZeroOrOneSetCCResult),
this should be harmless!  The point is that all over
the place the result of SETCC is fed directly into
BRCOND.  On machines for which getSetCCResultContents
returns ZeroOrNegativeOneSetCCResult, this is a
sign-extended boolean.  So it seems dangerous to
also feed BRCOND zero-extended booleans in some
circumstances - for example, when promoting the
condition.

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

15 years agoFlush the raw_ostream after emitting the assembly for a function.
Dan Gohman [Fri, 7 Nov 2008 19:49:17 +0000 (19:49 +0000)]
Flush the raw_ostream after emitting the assembly for a function.
This is a temporary fix for the -print-emitted-asm option, where
errs() is used as the stream, in the case where other code is
using stderr without using errs()' buffer. Hopefully soon we'll
fix errs() to be non-buffered instead. Patch by Preston Gurd.

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

15 years agoFix unsigned->ppcf128 conversion.
Dale Johannesen [Fri, 7 Nov 2008 19:11:43 +0000 (19:11 +0000)]
Fix unsigned->ppcf128 conversion.

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

15 years agoUpdate to add newer bitcodes.
Nick Lewycky [Fri, 7 Nov 2008 14:52:51 +0000 (14:52 +0000)]
Update to add newer bitcodes.

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

15 years agoKeep CREDITS.TXT sorted by name.
Richard Osborne [Fri, 7 Nov 2008 12:44:36 +0000 (12:44 +0000)]
Keep CREDITS.TXT sorted by name.

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

15 years agoAdd contributer information for XCore backend to CREDITS.TXT
Richard Osborne [Fri, 7 Nov 2008 12:41:14 +0000 (12:41 +0000)]
Add contributer information for XCore backend to CREDITS.TXT

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

15 years agoAdd XCore backend to CMake build.
Richard Osborne [Fri, 7 Nov 2008 12:37:45 +0000 (12:37 +0000)]
Add XCore backend to CMake build.

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

15 years agoAdd basic test for XCore backend
Richard Osborne [Fri, 7 Nov 2008 11:24:12 +0000 (11:24 +0000)]
Add basic test for XCore backend

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

15 years agoFix compile warnings.
Richard Osborne [Fri, 7 Nov 2008 11:21:09 +0000 (11:21 +0000)]
Fix compile warnings.

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

15 years agoCellSPU: Ensure that C strings are always put in the .rodata section
Scott Michel [Fri, 7 Nov 2008 11:06:44 +0000 (11:06 +0000)]
CellSPU: Ensure that C strings are always put in the .rodata section

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

15 years agoAdd XCore backend.
Richard Osborne [Fri, 7 Nov 2008 10:59:00 +0000 (10:59 +0000)]
Add XCore backend.

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

15 years agoJump table JIT support. Work in progress.
Evan Cheng [Fri, 7 Nov 2008 09:06:08 +0000 (09:06 +0000)]
Jump table JIT support. Work in progress.

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

15 years agoJump tables may be emitted by target.
Evan Cheng [Fri, 7 Nov 2008 09:02:17 +0000 (09:02 +0000)]
Jump tables may be emitted by target.

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

15 years agoJump table relocation addresses may be resolved by target.
Evan Cheng [Fri, 7 Nov 2008 09:01:15 +0000 (09:01 +0000)]
Jump table relocation addresses may be resolved by target.

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

15 years agoTeach CellSPU about ELF sections and new section emitter classes.
Scott Michel [Fri, 7 Nov 2008 04:36:25 +0000 (04:36 +0000)]
Teach CellSPU about ELF sections and new section emitter classes.

NB: This is likely to need more work.

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

15 years agoBCUI + 1 doesn't work. Use next instead.
Bill Wendling [Fri, 7 Nov 2008 01:59:41 +0000 (01:59 +0000)]
BCUI + 1 doesn't work. Use next instead.

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

15 years agoRefactor code that adjusts the offsets of stack objects.
Bill Wendling [Fri, 7 Nov 2008 01:48:58 +0000 (01:48 +0000)]
Refactor code that adjusts the offsets of stack objects.

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

15 years agoEncode misc arithmetic instructions.
Evan Cheng [Fri, 7 Nov 2008 01:41:35 +0000 (01:41 +0000)]
Encode misc arithmetic instructions.

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

15 years agoTestcase for testb optimization.
Dale Johannesen [Fri, 7 Nov 2008 01:30:18 +0000 (01:30 +0000)]
Testcase for testb optimization.

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

15 years agoHandle (delete) dbg intrinsics while promoting alloca.
Devang Patel [Fri, 7 Nov 2008 01:30:07 +0000 (01:30 +0000)]
Handle (delete) dbg intrinsics while promoting alloca.

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

15 years agoWhen we're doing a compare of load-AND-constant to 0
Dale Johannesen [Fri, 7 Nov 2008 01:28:02 +0000 (01:28 +0000)]
When we're doing a compare of load-AND-constant to 0
(e.g. a bitfield test) narrow the load as much as possible.
The has the potential to avoid unnecessary partial-word
load-after-store conflicts, which cause stalls on several targets.
Also a size win on x86 (testb vs testl).

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

15 years ago- Modify the stack protector algorithm so that the stack slot is allocated in
Bill Wendling [Fri, 7 Nov 2008 01:23:58 +0000 (01:23 +0000)]
- Modify the stack protector algorithm so that the stack slot is allocated in
  LLVM IR code and not in the selection DAG ISel. This is a cleaner solution.

- Fix the heuristic for determining if protectors are necessary. The previous
  one wasn't checking the proper type size.

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

15 years agoRemove unneeded header file.
Bill Wendling [Thu, 6 Nov 2008 23:56:59 +0000 (23:56 +0000)]
Remove unneeded header file.

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

15 years agoDon't build a vector of returns. Just modify the Function in the loop.
Bill Wendling [Thu, 6 Nov 2008 23:55:49 +0000 (23:55 +0000)]
Don't build a vector of returns. Just modify the Function in the loop.

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

15 years agoFixed scalarizing an extract subvector and prevent an infinite loop
Mon P Wang [Thu, 6 Nov 2008 22:52:21 +0000 (22:52 +0000)]
Fixed scalarizing an extract subvector and prevent an infinite loop
when simplify a vector.

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

15 years agoThe size limit is for individual arrays. So if any array has more than 8 bytes
Bill Wendling [Thu, 6 Nov 2008 22:18:44 +0000 (22:18 +0000)]
The size limit is for individual arrays. So if any array has more than 8 bytes
in it, then emit stack protectors.

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

15 years agoEncode extend instructions; more clean up.
Evan Cheng [Thu, 6 Nov 2008 22:15:19 +0000 (22:15 +0000)]
Encode extend instructions; more clean up.

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

15 years agoFix a use of an invalid iterator when -debug-pass=Details is used.
Dan Gohman [Thu, 6 Nov 2008 21:57:17 +0000 (21:57 +0000)]
Fix a use of an invalid iterator when -debug-pass=Details is used.

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

15 years agoDon't recalculate the stack position of the stack protector.
Bill Wendling [Thu, 6 Nov 2008 21:37:09 +0000 (21:37 +0000)]
Don't recalculate the stack position of the stack protector.

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

15 years agoEmit label for llvm.dbg.func.start of the inlined function.
Devang Patel [Thu, 6 Nov 2008 21:28:20 +0000 (21:28 +0000)]
Emit label for llvm.dbg.func.start of the inlined function.

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

15 years agoClarify documentation. A module pass MP can require a function paqss FP only if FP...
Devang Patel [Thu, 6 Nov 2008 19:47:49 +0000 (19:47 +0000)]
Clarify documentation. A module pass MP can require a function paqss FP only if FP does not require any module pass.

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

15 years ago- Improve naming consistency: Branch -> BrFrm, BranchMisc -> BrMiscFrm.
Evan Cheng [Thu, 6 Nov 2008 17:48:05 +0000 (17:48 +0000)]
- Improve naming consistency: Branch -> BrFrm, BranchMisc -> BrMiscFrm.
- Consolidate instruction formats.
- Other clean up.

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

15 years agoImprove JIT debugging outputs format consistency.
Evan Cheng [Thu, 6 Nov 2008 17:46:04 +0000 (17:46 +0000)]
Improve JIT debugging outputs format consistency.

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

15 years agoplug leakage of mutex data. pthread_mutex_destroy() doesnt free our malloc'ed memory.
Nuno Lopes [Thu, 6 Nov 2008 16:21:49 +0000 (16:21 +0000)]
plug leakage of mutex data. pthread_mutex_destroy() doesnt free our malloc'ed memory.

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

15 years agoFormating/comment changes - no functionality change.
Duncan Sands [Thu, 6 Nov 2008 08:51:32 +0000 (08:51 +0000)]
Formating/comment changes - no functionality change.

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

15 years agoRemove opcode from instruction TS flags; add MOVCC support; fix addrmode3 encoding...
Evan Cheng [Thu, 6 Nov 2008 08:47:38 +0000 (08:47 +0000)]
Remove opcode from instruction TS flags; add MOVCC support; fix addrmode3 encoding bug.

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

15 years ago- Rename stackprotector_{prologue,epilogue} to stackprotector_{create,check}.
Bill Wendling [Thu, 6 Nov 2008 07:23:03 +0000 (07:23 +0000)]
- Rename stackprotector_{prologue,epilogue} to stackprotector_{create,check}.
- Get rid of "HasStackProtector" in MachineFrameInfo.
- Modify intrinsics to tell which are doing what with memory.

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

15 years agoUpdate VC++ projects.
Steve Naroff [Thu, 6 Nov 2008 06:24:59 +0000 (06:24 +0000)]
Update VC++ projects.

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

15 years agoWidening cleanup
Mon P Wang [Thu, 6 Nov 2008 05:31:54 +0000 (05:31 +0000)]
Widening cleanup

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

15 years agoHandle smul<x><y>, smulw<y>, smla<x><y>, smlaw<y>.
Evan Cheng [Thu, 6 Nov 2008 03:35:07 +0000 (03:35 +0000)]
Handle smul<x><y>, smulw<y>, smla<x><y>, smlaw<y>.

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

15 years agoAdjust the stack protector heuristic to care about only arrays or calls to
Bill Wendling [Thu, 6 Nov 2008 02:38:58 +0000 (02:38 +0000)]
Adjust the stack protector heuristic to care about only arrays or calls to
"alloca".

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

15 years agoImplement the stack protector stack accesses via intrinsics:
Bill Wendling [Thu, 6 Nov 2008 02:29:10 +0000 (02:29 +0000)]
Implement the stack protector stack accesses via intrinsics:

- stackprotector_prologue creates a stack object and stores the guard there.

- stackprotector_epilogue reads the stack guard from the stack position created
  by stackprotector_prologue.

- The PrologEpilogInserter was changed to make sure that the stack guard is
  first on the stack frame.

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

15 years agoFix so_imm encoding bug; add support for MOVi2pieces.
Evan Cheng [Thu, 6 Nov 2008 02:25:39 +0000 (02:25 +0000)]
Fix so_imm encoding bug; add support for MOVi2pieces.

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

15 years agoFix encoding of multiple instructions with 3 src operands; also handle smmul, smmla...
Evan Cheng [Thu, 6 Nov 2008 01:21:28 +0000 (01:21 +0000)]
Fix encoding of multiple instructions with 3 src operands; also handle smmul, smmla, and smmls.

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

15 years agoNeed a \n.
Evan Cheng [Thu, 6 Nov 2008 01:18:29 +0000 (01:18 +0000)]
Need a \n.

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

15 years agoInstructionNamer preserves everything.
Devang Patel [Thu, 6 Nov 2008 01:00:16 +0000 (01:00 +0000)]
InstructionNamer preserves everything.

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

15 years agoEmit label for llvm.dbg.func.start of the inlined function.
Devang Patel [Thu, 6 Nov 2008 00:30:09 +0000 (00:30 +0000)]
Emit label for llvm.dbg.func.start of the inlined function.

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

15 years agoAdd post-build event for clangDriver (to copy clang.exe into "dstroot").
Steve Naroff [Thu, 6 Nov 2008 00:11:31 +0000 (00:11 +0000)]
Add post-build event for clangDriver (to copy clang.exe into "dstroot").

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

15 years agoUndo 58778 but makes the binary dump prettier.
Evan Cheng [Wed, 5 Nov 2008 23:44:08 +0000 (23:44 +0000)]
Undo 58778 but makes the binary dump prettier.

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

15 years agoAdd comments to function.
Bill Wendling [Wed, 5 Nov 2008 23:42:27 +0000 (23:42 +0000)]
Add comments to function.

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

15 years agoEncode pic load / store instructions; fix some encoding bugs.
Evan Cheng [Wed, 5 Nov 2008 23:22:34 +0000 (23:22 +0000)]
Encode pic load / store instructions; fix some encoding bugs.

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

15 years agoAdd command line option -entry-funcion to override entry function (default is main).
Evan Cheng [Wed, 5 Nov 2008 23:21:52 +0000 (23:21 +0000)]
Add command line option -entry-funcion to override entry function (default is main).

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

15 years agoRemove debug output that's not really useful.
Evan Cheng [Wed, 5 Nov 2008 23:21:11 +0000 (23:21 +0000)]
Remove debug output that's not really useful.

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

15 years agoMake ISel ignore dead nodes. The DAGCombiner normally eliminates
Dan Gohman [Wed, 5 Nov 2008 22:56:47 +0000 (22:56 +0000)]
Make ISel ignore dead nodes. The DAGCombiner normally eliminates
dead nodes, but in this case its missing one. Fixing the DAGCombiner
is desirable, but it's somewhat involved.

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

15 years agoopt was not exporting the Mangler symbols
Andrew Lenharth [Wed, 5 Nov 2008 22:42:50 +0000 (22:42 +0000)]
opt was not exporting the Mangler symbols

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

15 years agoAdd PR number.
Devang Patel [Wed, 5 Nov 2008 18:41:15 +0000 (18:41 +0000)]
Add PR number.

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

15 years agoRestructure ARM code emitter to use instruction formats instead of addressing modes...
Evan Cheng [Wed, 5 Nov 2008 18:35:52 +0000 (18:35 +0000)]
Restructure ARM code emitter to use instruction formats instead of addressing modes to determine how to encode instructions.

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

15 years agoUse an assert to check that SelectCode isn't called on
Dan Gohman [Wed, 5 Nov 2008 18:30:52 +0000 (18:30 +0000)]
Use an assert to check that SelectCode isn't called on
nodes that are already selected.

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

15 years agoThe HadDelete field is no longer used.
Dan Gohman [Wed, 5 Nov 2008 17:35:14 +0000 (17:35 +0000)]
The HadDelete field is no longer used.

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

15 years agoReintroduce a comment that was removed with the AddToISelQueue
Dan Gohman [Wed, 5 Nov 2008 17:16:24 +0000 (17:16 +0000)]
Reintroduce a comment that was removed with the AddToISelQueue
changes.

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

15 years agoUpdate some comments to reflect the new code.
Dan Gohman [Wed, 5 Nov 2008 17:13:57 +0000 (17:13 +0000)]
Update some comments to reflect the new code.

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

15 years agoTest commit, add Makefile for XCore target, more to follow.
Richard Osborne [Wed, 5 Nov 2008 09:53:58 +0000 (09:53 +0000)]
Test commit, add Makefile for XCore target, more to follow.

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

15 years agoFix thinko in ppcf128 expansion of truncating store.
Duncan Sands [Wed, 5 Nov 2008 07:17:27 +0000 (07:17 +0000)]
Fix thinko in ppcf128 expansion of truncating store.

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

15 years agoAdd more vector move low and zero-extend patterns.
Evan Cheng [Wed, 5 Nov 2008 06:04:51 +0000 (06:04 +0000)]
Add more vector move low and zero-extend patterns.

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

15 years agoType of shuffle mask has changed.
Evan Cheng [Wed, 5 Nov 2008 06:04:18 +0000 (06:04 +0000)]
Type of shuffle mask has changed.

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

15 years agoIndentation.
Evan Cheng [Wed, 5 Nov 2008 06:03:38 +0000 (06:03 +0000)]
Indentation.

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

15 years agoEliminate the ISel priority queue, which used the topological order for a
Dan Gohman [Wed, 5 Nov 2008 04:14:16 +0000 (04:14 +0000)]
Eliminate the ISel priority queue, which used the topological order for a
priority function. Instead, just iterate over the AllNodes list, which is
already in topological order. This eliminates a fair amount of bookkeeping,
and speeds up the isel phase by about 15% on many testcases.

The impact on most targets is that AddToISelQueue calls can be simply removed.

In the x86 target, there are two additional notable changes.

The rule-bending AND+SHIFT optimization in MatchAddress that creates new
pre-isel nodes during isel is now a little more verbose, but more robust.
Instead of either creating an invalid DAG or creating an invalid topological
sort, as it has historically done, it can now just insert the new nodes into
the node list at a position where they will be consistent with the topological
ordering.

Also, the address-matching code has logic that checked to see if a node was
"already selected". However, when a node is selected, it has all its uses
taken away via ReplaceAllUsesWith or equivalent, so it won't recieve any
further visits from MatchAddress. This code is now removed.

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

15 years agoUse getTargetConstant instead of getConstant for nodes that should not be visited
Dan Gohman [Wed, 5 Nov 2008 02:06:09 +0000 (02:06 +0000)]
Use getTargetConstant instead of getConstant for nodes that should not be visited
by isel and potentially forced into registers.

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

15 years agoRename isGVLazyPtr to isGVNonLazyPtr relocation. This represents Mac OS X
Evan Cheng [Wed, 5 Nov 2008 01:50:32 +0000 (01:50 +0000)]
Rename isGVLazyPtr to isGVNonLazyPtr relocation. This represents Mac OS X
indirect gv reference. Please don't call it lazy.

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

15 years agoNew test case.
Devang Patel [Wed, 5 Nov 2008 01:40:30 +0000 (01:40 +0000)]
New test case.

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

15 years agoDo now allow InlineAlways pass to remove dead functions.
Devang Patel [Wed, 5 Nov 2008 01:39:16 +0000 (01:39 +0000)]
Do now allow InlineAlways pass to remove dead functions.

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

15 years agoSilence unused variable warnings.
Devang Patel [Wed, 5 Nov 2008 01:37:40 +0000 (01:37 +0000)]
Silence unused variable warnings.

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

15 years agoCheck Attribute::NoInline.
Devang Patel [Wed, 5 Nov 2008 01:37:05 +0000 (01:37 +0000)]
Check Attribute::NoInline.

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

15 years agoRemove dead variable.
Bill Wendling [Wed, 5 Nov 2008 00:56:35 +0000 (00:56 +0000)]
Remove dead variable.

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

15 years agoSimplify the allocated size calculation.
Bill Wendling [Wed, 5 Nov 2008 00:54:27 +0000 (00:54 +0000)]
Simplify the allocated size calculation.

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

15 years agoFix comment
Bill Wendling [Wed, 5 Nov 2008 00:46:15 +0000 (00:46 +0000)]
Fix comment

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

15 years agoUse the new predicate to control when we do prealloc splitting. Fix a small bug.
Owen Anderson [Wed, 5 Nov 2008 00:32:13 +0000 (00:32 +0000)]
Use the new predicate to control when we do prealloc splitting.  Fix a small bug.

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

15 years agoDebugging output tweak.
Evan Cheng [Wed, 5 Nov 2008 00:22:28 +0000 (00:22 +0000)]
Debugging output tweak.

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

15 years agoCMake: updated list of source files.
Oscar Fuentes [Wed, 5 Nov 2008 00:11:22 +0000 (00:11 +0000)]
CMake: updated list of source files.

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

15 years agoSome code simplification. It now doesn't generate a prologue if the epilogue
Bill Wendling [Wed, 5 Nov 2008 00:00:21 +0000 (00:00 +0000)]
Some code simplification. It now doesn't generate a prologue if the epilogue
isn't going to be generated.

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

15 years agoAdd a new pass to simplify specific half_powr function calls. This is
Dan Gohman [Tue, 4 Nov 2008 23:41:45 +0000 (23:41 +0000)]
Add a new pass to simplify specific half_powr function calls. This is
a specialized pass that it not likely to be generally useful.

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

15 years agoOn darwin, 32-bit x86 target is i386-apple-darwin...
Devang Patel [Tue, 4 Nov 2008 23:13:50 +0000 (23:13 +0000)]
On darwin, 32-bit x86 target is i386-apple-darwin...

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

15 years agofix memory leak in pass manager when adding an analysis pass that already existed...
Nuno Lopes [Tue, 4 Nov 2008 23:03:58 +0000 (23:03 +0000)]
fix memory leak in pass manager when adding an analysis pass that already existed. as pass manager takes ownership of the added passes, it has to delete the pass if it isnt added to the pass list
tweak the opt tool so that it doesnt access a Pass after the ownership was taken by the pass manager

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

15 years agoFix tests not to emit IR output
Anton Korobeynikov [Tue, 4 Nov 2008 23:02:39 +0000 (23:02 +0000)]
Fix tests not to emit IR output

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

15 years agoSmall simplification of the stack guard type.
Bill Wendling [Tue, 4 Nov 2008 22:54:43 +0000 (22:54 +0000)]
Small simplification of the stack guard type.

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

15 years ago- Add a "getOrInsertGlobal" method to the Module class. This acts similarly to
Bill Wendling [Tue, 4 Nov 2008 22:51:24 +0000 (22:51 +0000)]
- Add a "getOrInsertGlobal" method to the Module class. This acts similarly to
  "getOrInsertFunction" in that it either adds a new declaration of the global
  and returns it, or returns the current one -- optionally casting it to the
  correct type.
- Use the new getOrInsertGlobal in the stack protector code.
- Use "splitBasicBlock" in the stack protector code.

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

15 years agoFirst pass at checking for the creation of a new join point when doing pre-alloc...
Owen Anderson [Tue, 4 Nov 2008 22:22:41 +0000 (22:22 +0000)]
First pass at checking for the creation of a new join point when doing pre-alloc splitting.  This is not turned on yet.

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

15 years agoActually ARM / Mac OS X does have UINTTOFP_I64_F{64|32} libcalls.
Evan Cheng [Tue, 4 Nov 2008 22:19:55 +0000 (22:19 +0000)]
Actually ARM / Mac OS X does have UINTTOFP_I64_F{64|32} libcalls.

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

15 years agoUpdate in response to feedback from Chris:
Bill Wendling [Tue, 4 Nov 2008 21:53:09 +0000 (21:53 +0000)]
Update in response to feedback from Chris:

- Use enums instead of magic numbers.

- Rework algorithm to use the bytes size from the target to determine when to
  emit stack protectors.

- Get rid of "propolice" in any comments.

- Renamed an option to its expanded form.

- Other miscellanenous changes.

More changes will come after this.

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

15 years agofix two validation errors
Gabor Greif [Tue, 4 Nov 2008 21:50:59 +0000 (21:50 +0000)]
fix two validation errors

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